<?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>172367</bug_id>
          
          <creation_ts>2017-05-19 11:03:16 -0700</creation_ts>
          <short_desc>REGRESSION(r217098): These changes broke the Windows build and introduced LayoutTest failures (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2017-05-19 11:06:43 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>125157</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1310660</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 11:03:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/217098 broke the build:
These changes broke the Windows build and introduced LayoutTest failures (Requested by ryanhaddad on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310662</commentid>
    <comment_count>1</comment_count>
      <attachid>310673</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 11:03:27 -0700</bug_when>
    <thetext>Created attachment 310673
ROLLOUT of r217098

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310663</commentid>
    <comment_count>2</comment_count>
      <attachid>310673</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-19 11:06:41 -0700</bug_when>
    <thetext>Comment on attachment 310673
ROLLOUT of r217098

Clearing flags on attachment: 310673

Committed r217133: &lt;http://trac.webkit.org/changeset/217133&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310664</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-19 11:06:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310673</attachid>
            <date>2017-05-19 11:03:27 -0700</date>
            <delta_ts>2017-05-19 11:06:41 -0700</delta_ts>
            <desc>ROLLOUT of r217098</desc>
            <filename>bug-172367-20170519140327.patch</filename>
            <type>text/plain</type>
            <size>103701</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg3MmU3MWFjN2NjNzUy
OTQ2NjYzYTIwNDNhZjlhMWJjZmQwMGY2MC4uOWU4YTMwNzRjNGE4MjFmMjI3MDU0NjIwMDIxMjNl
Njk2MTdmNTg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA1LTE5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjE3MDk4LCByMjE3MTExLCByMjE3MTEzLCBhbmQKKyAgICAgICAgcjIx
NzExNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MjM2NworCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYnJva2UgdGhlIFdpbmRvd3MgYnVpbGQgYW5k
IGludHJvZHVjZWQKKyAgICAgICAgTGF5b3V0VGVzdCBmYWlsdXJlcyAoUmVxdWVzdGVkIGJ5IHJ5
YW5oYWRkYWQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKwor
ICAgICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRv
IGNhbnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcwOTgK
KworICAgICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50
IHRvIGNhbnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcx
MTEKKworICAgICAgICAiVW5yZXZpZXdlZCBidWlsZCBmaXg7IGFkZCB1bmRlZmluZWQgZnVuY3Rp
b25zIGFuZCBjb25zdGFudHMKKyAgICAgICAgdG8gdGhlIENvcmVNZWRpYVNvZnRMaW5rLmgsIGFu
ZCB1c2UgdGhlIgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcx
MTMKKworICAgICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVt
ZW50IHRvIGNhbnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8y
MTcxMTQKKwogMjAxNy0wNS0xOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjIxNzA3OCk6IHdpbmRvdy5BcHBsZVBheVNlc3Npb24gaXMgdW5k
ZWZpbmVkIG9uIG1hY09TIFNpZXJyYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA2YWM4ZDAyOGM2MzllMzJkNTJkZDBkYTdj
ZDZhNjIyNzg2M2YzMDJkLi5mOWY5MTNlYmNlYzZhZWU2MGEzZGY5M2M1Y2E5NjlmZDRlOTlhM2Y4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmNwcApAQCAtMjMzLDcgKzIzMyw2IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnNlZWtUb1RpbWUo
Y29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAgIC8vIOKGsyBPdGhlcndpc2UKICAgICAvLyBDb250
aW51ZQogCi0gICAgbV9wcml2YXRlLT53YWl0Rm9yU2Vla0NvbXBsZXRlZCgpOwogICAgIGNvbXBs
ZXRlU2VlaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggNzQ3OWM3N2E4NjM1YTc4YjIyMjZlOWNjNjJiNDJj
MDY0YTZkNTYxNC4uZDJiN2M5OWIxYmQ1MjdhMjM3MDBhZWZjZjQwZDU1MDZiYTg2Njk3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMTc3OCwyNiArMTc3OCw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tL
aW5kQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVt
ZW50KCktPnRleHRUcmFja0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVSZWVucXVlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSUQpCi17Ci0gICAgaWYgKGlzUmVtb3ZlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVSZWVu
cXVlU2FtcGxlcyglcCkiLCB0aGlzKTsKLSAgICBhdXRvIGl0ID0gbV90cmFja0J1ZmZlck1hcC5m
aW5kKHRyYWNrSUQpOwotICAgIGlmIChpdCA9PSBtX3RyYWNrQnVmZmVyTWFwLmVuZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBhdXRvJiB0cmFja0J1ZmZlciA9IGl0LT52YWx1ZTsKLSAgICB0
cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyA9IHRydWU7Ci0gICAgcmVlbnF1ZXVlTWVkaWFG
b3JUaW1lKHRyYWNrQnVmZmVyLCB0cmFja0lELCBtX3NvdXJjZS0+Y3VycmVudFRpbWUoKSk7Ci19
Ci0KIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlG
b3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpCiB7Ci0gICAgaWYgKGlz
UmVtb3ZlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVz
KCVwKSIsIHRoaXMpOwogICAgIGF1dG8gaXQgPSBtX3RyYWNrQnVmZmVyTWFwLmZpbmQodHJhY2tJ
RCk7CiAgICAgaWYgKGl0ID09IG1fdHJhY2tCdWZmZXJNYXAuZW5kKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCA2Y2NhODdh
NWM1NWE3NmQ4OGRjOWRkNDkwNmZmY2NmYTNlY2I3MTE4Li41YTE0MmQ0Y2ExMDIzNTRlZWQ4MGJj
MWFjMWJlYmMzMTU3NmM4ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTEyOSw3ICsxMjksNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSBm
aW5hbDsKICAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgZmluYWw7Ci0g
ICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlUmVlbnF1ZVNhbXBsZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiB0cmFja0lEKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7
CiAgICAgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRp
bWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwg
Y29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkgZmluYWw7CiAgICAgdm9pZCBzb3Vy
Y2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
ZjQyZjAzNjE3ZmE1NDBkNDk2YzdkZjJkMjRkMjEzZjdmNjY2NmRhLi5jOWQ2MjkxODFkNmNkNDEz
YTBjZDJjZjBhNGQ4NDVhMWIwMTczNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTI4LDggKzYxMjgsNiBAQAogCQlDRDU1
OTY5MjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU1OTY5MDE0NzVCNjc4MDAxRDBC
RDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi87IH07CiAJCUNENTg5NkUxMUNEMkIxNTEwMEIz
QkNDOCAvKiBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTg5NkRGMUNEMkIxNTEwMEIzQkNDOCAvKiBX
ZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbSAqLzsgfTsKIAkJQ0Q1ODk2RTIxQ0QyQjE1MTAw
QjNCQ0M4IC8qIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU4OTZFMDFDRDJCMTUxMDBCM0JDQzggLyog
V2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlDRDVEMjc3NzFFODMxOEUwMDBEODBBM0QgLyogV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q1RDI3NzUxRTgzMThFMDAwRDgwQTNEIC8qIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbi5tbSAqLzsgfTsKLQkJQ0Q1RDI3NzgxRTgzMThFMDAwRDgwQTNEIC8qIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1RDI3NzYxRTgzMThFMDAwRDgwQTNEIC8qIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbi5oICovOyB9OwogCQlDRDVFNUI1RjFBMTVDRTU0MDAwQzYwOUUgLyog
UGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENUU1QjVFMUExNUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNENUU1
QjYxMUExNUYxNTYwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVFNUI2MDFBMTVGMTU2MDAwQzYw
OUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQlDRDYwQzBDNjE5M0U4N0M3MDAz
QzY1NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDYwQzBDNDE5M0U4N0M3MDAzQzY1NkIgLyogTWVkaWFUaW1lUVRL
aXQubW0gKi87IH07CkBAIC02MjMxLDggKzYyMjksNiBAQAogCQlDREM4QjVBQTE4MDQ3RkYxMDAx
NkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUgLyog
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi87IH07CiAJCUNEQzhCNUFCMTgwNDdGRjEw
MDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTkxODA0N0ZGMTAwMTZFNjg1IC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggKi87IH07CiAJCUNEQzhCNUFEMTgwNEFFNUQw
MDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBQzE4MDRBRTVEMDAxNkU2ODUgLyog
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovOyB9OwotCQlDREM5MzlBNzFFOUJERkIxMDBC
Qjc2OEQgLyogVmlkZW9Ub29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOTM5QTUxRTlCREZCMTAwQkI3NjhEIC8qIFZpZGVv
VG9vbGJveFNvZnRMaW5rLmNwcCAqLzsgfTsKLQkJQ0RDOTM5QTgxRTlCREZCMTAwQkI3NjhEIC8q
IFZpZGVvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREM5MzlBNjFFOUJERkIxMDBCQjc2OEQgLyogVmlkZW9Ub29sYm94U29m
dExpbmsuaCAqLzsgfTsKIAkJQ0RDOTc5RjQxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vy
cm9yRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RDOTc5RjIxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLm1tICov
OyB9OwogCQlDREM5NzlGNTFDNDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzk3OUYz
MUM0OThDMDkwMERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5oICovOyB9OwogCQlDRENB
OThFQjE4QjJDOEVCMDBDMTJGRjkgLyogTGVnYWN5Q0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E5OEVBMThC
MkM4RUIwMEMxMkZGOSAvKiBMZWdhY3lDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovOyB9OwpA
QCAtMTQ2MjUsOCArMTQ2MjEsNiBAQAogCQlDRDU1OTY5MDE0NzVCNjc4MDAxRDBCRDAgLyogQXVk
aW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlv
RmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU4OTZERjFD
RDJCMTUxMDBCM0JDQzggLyogV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1ODk2RTAxQ0QyQjE1MTAwQjNC
Q0M4IC8qIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUNENUQyNzc1MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUNENUQyNzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUU1QjVFMUEx
NUNFNTQwMDBDNjA5RSAvKiBQYWdlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYWdlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDVFNUI2MDFBMTVGMTU2MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDYwQzBDNDE5M0U4N0M3MDAzQzY1
NkIgLyogTWVkaWFUaW1lUVRLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVRpbWVRVEtpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE0NzQ3LDggKzE0NzQxLDYgQEAKIAkJQ0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVB
QzE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNEQzkzOUE1MUU5QkRGQjEwMEJCNzY4RCAvKiBW
aWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNEQzkzOUE2MUU5QkRG
QjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b1Rvb2xib3hTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM5NzlG
MjFDNDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDOTc5RjMxQzQ5OEMwOTAwREI1MEQ0IC8qIFdl
YkNvcmVOU0Vycm9yRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvcmVOU0Vycm9yRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5
OEU5MThCMkM4RDAwMEMxMkZGOSAvKiBMZWdhY3lDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5Q0RNUHJpdmF0ZU1lZGlhUGxheWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTEyOSw4ICsyMTEyMSw2IEBACiAJ
CQkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgg
Ki8sCiAJCQkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50LmggKi8sCiAJCQkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovLAotCQkJCUNEQzkzOUE1MUU5
QkRGQjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgKi8sCi0JCQkJQ0RDOTM5
QTYxRTlCREZCMTAwQkI3NjhEIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzMzcyLDgg
KzIzMzYyLDYgQEAKIAkJCQkyRDNFRjQ0NTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlz
YWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tICovLAogCQkJCTJEM0VGNDQ2MTkxNzkxNUMwMDAzNDE4
NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oICovLAogCQkJCTJEM0VGNDQ3MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5tbSAqLywKLQkJCQlDRDVEMjc3NTFFODMxOEUw
MDBEODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tICovLAotCQkJCUNENUQy
Nzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCAqLywK
IAkJCQkzMTZCREI4QTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIuaCAqLywKIAkJCQkz
MTZCREI4OTFFNkUxNTMwMDBERTBENUEgLyogV2ViR1BVTGF5ZXIubW0gKi8sCiAJCQkpOwpAQCAt
MjcwODUsNyArMjcwNzMsNiBAQAogCQkJCUU0QUU3QzFBMTdEMjMyMzUwMDA5RkIzMSAvKiBFbGVt
ZW50QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MEFBOTYxQzY4NDIw
ODAwQTI2NUNDIC8qIEVsZW1lbnRBbmRUZXh0RGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNDZBMkIxRTE3Q0E3NkIxMDAwREJDRDggLyogRWxlbWVudENoaWxkSXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUNENUQyNzc4MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QjdBMTcxMTdD
MTBBQzAwMEU0QUEwQSAvKiBFbGVtZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENDM3
QTExRDU3QjNGNDAwQUI4NUVBIC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0QUU3QzE2MTdEMUJCOTUwMDA5RkIzMSAvKiBFbGVtZW50SXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg1ODAsNyArMjg1NjcsNiBAQAogCQkJCTUxNzEzOTA2MUJG
NjRERUMwMDBENUYwMSAvKiBNZW1vcnlPYmplY3RTdG9yZUN1cnNvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzRTAwNzkxREIwRTRGMjAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5REZBMDk5RTY0OTIwMDU2RTU4MSAvKiBNZXJnZUlkZW50aWNhbEVs
ZW1lbnRzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0RDOTM5QTgxRTlCREZCMTAwQkI3
NjhEIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFERUND
RTBFNzZBRDhCMDA0QTFBNUUgLyogTWVzc2FnZUNoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxQURFQ0JGMEU3NkFDRjEwMDRBMUE1RSAvKiBNZXNzYWdlUG9ydC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMDk2Nyw3ICszMDk1Myw2IEBACiAJCQkJRkQzMTYwMkQxMkIwMjY3NjAwQzFB
MzU5IC8qIERlbGF5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAzMDEyQjAyNjc2
MDBDMUEzNTkgLyogRGVsYXlQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlE
REUwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQ0RDOTM5QTcxRTlCREZCMTAwQkI3NjhEIC8qIFZpZGVvVG9vbGJveFNv
ZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REUwMDk5RTY0OTIwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk0Nzk0OTND
MUUwNDVDRjMwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NDc5NDkyNDFFMDMwOEE0MDAwMThEODUgLyogRGVwcmVjYXRlZENT
U09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzQwMSw3ICszMzM4Niw2IEBACiAJCQkJ
N0MzOUMzNzYxRERCQjkwRDAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjdBQjcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1N0eWxlRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FCQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
U1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDVEMjc3NzFFODMxOEUwMDBEODBB
M0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjIyMjdBQkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1N3aXRjaEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjIyMjdBQzAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1N5bWJvbEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBQzQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Rl
c3RzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2YvQ29yZU1lZGlhU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Yv
Q29yZU1lZGlhU29mdExpbmsuY3BwCmluZGV4IDIyOWQ3Y2M2M2MxMTJhODJlZjBkM2VlMWE2ZDhl
MzNiMjRjY2UzOTAuLjkwODMyNjFiYzAzODk5MzY5YzM2YjAyYTc2MmIwZTMxZDgwNzdmMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAK
QEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkNvcmVNZWRpYVNQSS5oIgogI2luY2x1ZGUg
IlNvZnRMaW5raW5nLmgiCi0jaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgogCiBTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhKQogCkBAIC00Nywx
NiArNDYsNiBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVk
aWEsIENNVGltZU1ha2UsIENNVGltZSwgKGludDY0X3QgdgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVNYWtlV2l0aFNlY29uZHMsIENNVGlt
ZSwgKEZsb2F0NjQgc2Vjb25kcywgaW50MzJfdCBwcmVmZXJyZWRUaW1lU2NhbGUpLCAoc2Vjb25k
cywgcHJlZmVycmVkVGltZVNjYWxlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VHZXRFbmQsIENNVGltZSwgKENNVGltZVJhbmdl
IHJhbmdlKSwgKHJhbmdlKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwg
Q01UaW1lIGR1cmF0aW9uKSwgKHN0YXJ0LCBkdXJhdGlvbikpCi1TT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVSZXNldCwgT1NTdGF0
dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUNyZWF0ZSwgT1NT
dGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNSXRlbUNvdW50IGNhcGFjaXR5LCBj
b25zdCBDTUJ1ZmZlckNhbGxiYWNrcyogY2FsbGJhY2tzLCBDTUJ1ZmZlclF1ZXVlUmVmKiBxdWV1
ZU91dCksIChhbGxvY2F0b3IsIGNhcGFjaXR5LCBjYWxsYmFja3MsIHF1ZXVlT3V0KSkKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1
ZUdldEhlYWQsIENNQnVmZmVyUmVmLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkp
Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVm
ZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluLCBDTUJ1ZmZlclJlZiwgKENNQnVmZmVyUXVldWVSZWYg
cXVldWUpLCAocXVldWUpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVl
UmVmIHF1ZXVlLCBDTUJ1ZmZlclJlZiBidWZmZXIpLCAocXVldWUsIGJ1ZmZlcikpCi1TT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJ
c0VtcHR5LCBCb29sZWFuLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVl
dWVHZXRCdWZmZXJDb3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwg
KHF1ZXVlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChD
TUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKLVNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEVuZFByZXNlbnRhdGlv
blRpbWVTdGFtcCwgQ01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVy
UXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywgKENNQnVm
ZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJpZ2dlckNh
bGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNvbmRpdGlv
biB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBDTUJ1ZmZl
clF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdnZXJDYWxs
YmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVzaG9sZCwg
dHJpZ2dlclRva2VuT3V0KSkKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBrQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVEZXNjcmlw
dGlvbkV4dGVuc2lvbkF0b21zLCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
U09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwga0NNVGV4dE1hcmt1cEFsaWdubWVudFR5cGVfRW5k
LCBDRlN0cmluZ1JlZikKQEAgLTgwLDcgKzY5LDYgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBrQ01UZXh0VmVydGljYWxMYXlvdXRfTGVmdFRvUmkK
IFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwga0NNVGV4
dFZlcnRpY2FsTGF5b3V0X1JpZ2h0VG9MZWZ0LCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwga0NNVGltZUludmFsaWQsIENNVGlt
ZSkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwga0NN
VGltZVplcm8sIENNVGltZSkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUs
IENvcmVNZWRpYSwga0NNVGltZVBvc2l0aXZlSW5maW5pdHksIENNVGltZSkKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1l
ZGlhLCBDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlLCBGb3VyQ2hhckNvZGUsIChD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCkBAIC0xMDksMTEgKzk3LDYgQEAg
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVi
YXNlR2V0VGltZSwgQ01UaW1lLCAoQ00KIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFJhdGUsIE9TU3RhdHVzLCAoQ01UaW1lYmFz
ZVJlZiB0aW1lYmFzZSwgRmxvYXQ2NCByYXRlKSwgKHRpbWViYXNlLCByYXRlKSkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRp
bWUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgQ01UaW1lIHRpbWUpLCAodGlt
ZWJhc2UsIHRpbWUpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29y
ZU1lZGlhLCBDTVRpbWViYXNlR2V0RWZmZWN0aXZlUmF0ZSwgRmxvYXQ2NCwgKENNVGltZWJhc2VS
ZWYgdGltZWJhc2UpLCAodGltZWJhc2UpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZSwgT1NT
dGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBkaXNwYXRjaF9zb3VyY2VfdCB0aW1lclNv
dXJjZSksICh0aW1lYmFzZSwgdGltZXJTb3VyY2UpKQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNv
dXJjZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBkaXNwYXRjaF9zb3VyY2Vf
dCB0aW1lclNvdXJjZSksICh0aW1lYmFzZSwgdGltZXJTb3VyY2UpKQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWViYXNlU2V0VGltZXJEaXNw
YXRjaFNvdXJjZU5leHRGaXJlVGltZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNl
LCBkaXNwYXRjaF9zb3VyY2VfdCB0aW1lclNvdXJjZSwgQ01UaW1lIGZpcmVUaW1lLCB1aW50MzJf
dCBmbGFncyksICh0aW1lYmFzZSwgdGltZXJTb3VyY2UsIGZpcmVUaW1lLCBmbGFncykpCi1TT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZWJhc2VT
ZXRUaW1lckRpc3BhdGNoU291cmNlVG9GaXJlSW1tZWRpYXRlbHksIE9TU3RhdHVzLCAoQ01UaW1l
YmFzZVJlZiB0aW1lYmFzZSwgZGlzcGF0Y2hfc291cmNlX3QgdGltZXJTb3VyY2UpLCAodGltZWJh
c2UsIHRpbWVyU291cmNlKSkKLQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29y
ZSwgQ29yZU1lZGlhLCBDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5LCBDRkRpY3Rpb25hcnlSZWYsIChD
TVRpbWUgdGltZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKHRpbWUsIGFsbG9jYXRvcikp
CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlTWVkaWEsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmKiBvdXREZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIs
IG91dERlc2MpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZU1l
ZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zLCBDTVZpZGVvRGltZW5z
aW9ucywgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Rlc2MpLCAodmlkZW9EZXNj
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmlu
ZGV4IDQyYjVkMjBlNmZjNDA2MjQxMTFkMGQ3Y2NiOGQyMmI0MDgyZWVjOWIuLmVjMzI2OWZlN2U1
MTFmMTczMDRiZDYxNzIxNGUwNjczYTI3ZDQ1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2YvQ29yZU1lZGlhU29mdExpbmsuaApAQCAtNjMsMjYgKzYzLDYgQEAgU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVu
ZCwgQ01UaW1lLCAoQ00KICNkZWZpbmUgQ01UaW1lUmFuZ2VHZXRFbmQgc29mdExpbmtfQ29yZU1l
ZGlhX0NNVGltZVJhbmdlR2V0RW5kCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlTWVkaWEsIENNVGltZVJhbmdlTWFrZSwgQ01UaW1lUmFuZ2UsIChDTVRpbWUgc3Rh
cnQsIENNVGltZSBkdXJhdGlvbiksIChzdGFydCwgZHVyYXRpb24pKQogI2RlZmluZSBDTVRpbWVS
YW5nZU1ha2Ugc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZVJhbmdlTWFrZQotU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlQ3JlYXRl
LCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01JdGVtQ291bnQgY2FwYWNp
dHksIGNvbnN0IENNQnVmZmVyQ2FsbGJhY2tzKiBjYWxsYmFja3MsIENNQnVmZmVyUXVldWVSZWYq
IHF1ZXVlT3V0KSwgKGFsbG9jYXRvciwgY2FwYWNpdHksIGNhbGxiYWNrcywgcXVldWVPdXQpKQot
I2RlZmluZSBDTUJ1ZmZlclF1ZXVlQ3JlYXRlIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1
ZXVlQ3JlYXRlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVk
aWEsIENNQnVmZmVyUXVldWVSZXNldCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZVJlc2V0IHNvZnRMaW5rX0NvcmVNZWRp
YV9DTUJ1ZmZlclF1ZXVlUmVzZXQKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNv
cmUsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZUdldEhlYWQsIENNQnVmZmVyUmVmLCAoQ01CdWZm
ZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi0jZGVmaW5lIENNQnVmZmVyUXVldWVHZXRIZWFk
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0SGVhZAotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFu
ZFJldGFpbiwgQ01CdWZmZXJSZWYsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkK
LSNkZWZpbmUgQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4gc29mdExpbmtfQ29yZU1lZGlh
X0NNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0YXR1cywg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1ZSwgYnVm
ZmVyKSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZUVucXVldWUgc29mdExpbmtfQ29yZU1lZGlhX0NN
QnVmZmVyUXVldWVFbnF1ZXVlCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJc0VtcHR5LCBCb29sZWFuLCAoQ01CdWZmZXJRdWV1
ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi0jZGVmaW5lIENNQnVmZmVyUXVldWVJc0VtcHR5IHNvZnRM
aW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlSXNFbXB0eQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQs
IENNSXRlbUNvdW50LCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi0jZGVmaW5l
IENNQnVmZmVyUXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJR
dWV1ZUdldEJ1ZmZlckNvdW50Ci1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCwg
Q01UaW1lLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCi0jZGVmaW5lIENNQnVm
ZmVyUXVldWVHZXRGaXJzdFByZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFf
Q01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wCi1TT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRFbmRQ
cmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNQnVmZmVyUXVldWVSZWYgcXVldWUpLCAo
cXVldWUpKQotI2RlZmluZSBDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1w
IHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENN
QnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkLCBPU1N0YXR1cywg
KENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgdHJp
Z2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlckNv
bmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmlnZ2VyVGhyZXNob2xkLCBD
TUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQpLCAocXVldWUsIHRyaWdn
ZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlvbiwgdHJpZ2dlclRocmVz
aG9sZCwgdHJpZ2dlclRva2VuT3V0KSkKLSNkZWZpbmUgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmln
Z2VyV2l0aEludGVnZXJUaHJlc2hvbGQgc29mdExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVJ
bnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkCiAKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwga0NNRm9ybWF0RGVzY3JpcHRpb25FeHRlbnNp
b25fU2FtcGxlRGVzY3JpcHRpb25FeHRlbnNpb25BdG9tcywgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5l
IGtDTUZvcm1hdERlc2NyaXB0aW9uRXh0ZW5zaW9uX1NhbXBsZURlc2NyaXB0aW9uRXh0ZW5zaW9u
QXRvbXMgZ2V0X0NvcmVNZWRpYV9rQ01Gb3JtYXREZXNjcmlwdGlvbkV4dGVuc2lvbl9TYW1wbGVE
ZXNjcmlwdGlvbkV4dGVuc2lvbkF0b21zKCkKQEAgLTEyOCw4ICsxMDgsNiBAQCBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIGtDTVRpbWVJbnZhbGlkLCBD
TVRpbWUpCiAjZGVmaW5lIGtDTVRpbWVJbnZhbGlkIGdldF9Db3JlTWVkaWFfa0NNVGltZUludmFs
aWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBr
Q01UaW1lWmVybywgQ01UaW1lKQogI2RlZmluZSBrQ01UaW1lWmVybyBnZXRfQ29yZU1lZGlhX2tD
TVRpbWVaZXJvKCkKLVNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVN
ZWRpYSwga0NNVGltZVBvc2l0aXZlSW5maW5pdHksIENNVGltZSkKLSNkZWZpbmUga0NNVGltZVBv
c2l0aXZlSW5maW5pdHkgZ2V0X0NvcmVNZWRpYV9rQ01UaW1lUG9zaXRpdmVJbmZpbml0eSgpCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKIApAQCAtMTgzLDE1ICsxNjEsNiBAQCBTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZWJhc2VTZXRUaW1lLCBP
U1N0YXR1cywgKAogI2RlZmluZSBDTVRpbWViYXNlU2V0VGltZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lYmFzZVNldFRpbWUKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVNZWRpYSwgQ01UaW1lYmFzZUdldEVmZmVjdGl2ZVJhdGUsIEZsb2F0NjQsIChDTVRpbWVi
YXNlUmVmIHRpbWViYXNlKSwgKHRpbWViYXNlKSkKICNkZWZpbmUgQ01UaW1lYmFzZUdldEVmZmVj
dGl2ZVJhdGUgc29mdExpbmtfQ29yZU1lZGlhX0NNVGltZWJhc2VHZXRFZmZlY3RpdmVSYXRlCi1T
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVGltZWJh
c2VBZGRUaW1lckRpc3BhdGNoU291cmNlLCBPU1N0YXR1cywgKENNVGltZWJhc2VSZWYgdGltZWJh
c2UsIGRpc3BhdGNoX3NvdXJjZV90IHRpbWVyU291cmNlKSwgKHRpbWViYXNlLCB0aW1lclNvdXJj
ZSkpCi0jZGVmaW5lIENNVGltZWJhc2VBZGRUaW1lckRpc3BhdGNoU291cmNlIHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWViYXNlQWRkVGltZXJEaXNwYXRjaFNvdXJjZQotU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZU1lZGlhLCBDTVRpbWViYXNlUmVtb3ZlVGltZXJE
aXNwYXRjaFNvdXJjZSwgT1NTdGF0dXMsIChDTVRpbWViYXNlUmVmIHRpbWViYXNlLCBkaXNwYXRj
aF9zb3VyY2VfdCB0aW1lclNvdXJjZSksICh0aW1lYmFzZSwgdGltZXJTb3VyY2UpKQotI2RlZmlu
ZSBDTVRpbWViYXNlUmVtb3ZlVGltZXJEaXNwYXRjaFNvdXJjZSBzb2Z0TGlua19Db3JlTWVkaWFf
Q01UaW1lYmFzZVJlbW92ZVRpbWVyRGlzcGF0Y2hTb3VyY2UKLVNPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hT
b3VyY2VOZXh0RmlyZVRpbWUsIE9TU3RhdHVzLCAoQ01UaW1lYmFzZVJlZiB0aW1lYmFzZSwgZGlz
cGF0Y2hfc291cmNlX3QgdGltZXJTb3VyY2UsIENNVGltZSBmaXJlVGltZSwgdWludDMyX3QgZmxh
Z3MpLCAodGltZWJhc2UsIHRpbWVyU291cmNlLCBmaXJlVGltZSwgZmxhZ3MpKQotI2RlZmluZSBD
TVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZU5leHRGaXJlVGltZSBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUKLVNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lYmFzZVNl
dFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSwgT1NTdGF0dXMsIChDTVRpbWVi
YXNlUmVmIHRpbWViYXNlLCBkaXNwYXRjaF9zb3VyY2VfdCB0aW1lclNvdXJjZSksICh0aW1lYmFz
ZSwgdGltZXJTb3VyY2UpKQotI2RlZmluZSBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJj
ZVRvRmlyZUltbWVkaWF0ZWx5IHNvZnRMaW5rX0NvcmVNZWRpYV9DTVRpbWViYXNlU2V0VGltZXJE
aXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5Ci0KIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIENvcmVNZWRpYSwgQ01UaW1lQ29weUFzRGljdGlvbmFyeSwgQ0ZEaWN0
aW9uYXJ5UmVmLCAoQ01UaW1lIHRpbWUsIENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciksICh0aW1l
LCBhbGxvY2F0b3IpKQogI2RlZmluZSBDTVRpbWVDb3B5QXNEaWN0aW9uYXJ5IHNvZnRMaW5rX0Nv
cmVNZWRpYV9DTVRpbWVDb3B5QXNEaWN0aW9uYXJ5CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlTWVkaWEsIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZv
ckltYWdlQnVmZmVyLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ1ZJbWFn
ZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmICpvdXRE
ZXNjKSwgKGFsbG9jYXRvciwgaW1hZ2VCdWZmZXIsIG91dERlc2MpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3BwCmluZGV4IDEwYzQz
YzMzZGUwNWI4ZjUyYjk2MGQxNThlZjQxM2JmMDEzZTFhY2YuLjEwMmU2M2FlMTgyYWY2MzEwZGM3
Y2U5NzQ2ODhhYzAwYTJiN2NjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbykKIAotU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0
VHlwZUlELCBDRlR5cGVJRCwgKCksICgpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0
LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhl
bEJ1ZmZlckdldEJhc2VBZGRyZXNzLCB2b2lkKiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIpLCAocGl4ZWxCdWZmZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvQ29yZVZpZGVvU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L0NvcmVWaWRlb1NvZnRMaW5rLmgKaW5kZXggNTM3NjEyZGQ2NzFkMDhhYzA1NTFiNTE2NzBiMzUy
YjM4ZWI1N2ZmZS4uODRhNDZiYTI4OWJlMmU5M2FkMzVlZmE4MjEwMDM2YmUxODM2NmEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5o
CkBAIC0zMSw4ICszMSw2IEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJD
b3JlLCBDb3JlVmlkZW8pCiAKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCwgQ0ZUeXBlSUQsICgpLCAoKSkKLSNk
ZWZpbmUgQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZQaXhlbEJ1
ZmZlckdldFR5cGVJRAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0V2lkdGgsIHNpemVfdCwgKENWUGl4ZWxCdWZmZXJSZWYg
cGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQogI2RlZmluZSBDVlBpeGVsQnVmZmVyR2V0V2lk
dGggc29mdExpbmtfQ29yZVZpZGVvX0NWUGl4ZWxCdWZmZXJHZXRXaWR0aAogU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SGVp
Z2h0LCBzaXplX3QsIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVy
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJv
eFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJv
eFNvZnRMaW5rLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMyYjY4ZGQ0MDk2
Nzg3NjgxYzFlNDIxYzFkMzc2MDI5OTZjMjQ5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rv
b2xib3hTb2Z0TGluay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKLSNp
bmNsdWRlIDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+Ci0KLVNPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gpCi0KLVNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uLCBDRkRpY3Rpb25hcnlSZWYg
dmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGRlc3RpbmF0aW9uSW1h
Z2VCdWZmZXJBdHRyaWJ1dGVzLCBjb25zdCBWVERlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFja1Jl
Y29yZCogb3V0cHV0Q2FsbGJhY2ssIFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYqIGRlY29tcHJl
c3Npb25TZXNzaW9uT3V0KSwgKGFsbG9jYXRvciwgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiwgdmlk
ZW9EZWNvZGVyU3BlY2lmaWNhdGlvbiwgZGVzdGluYXRpb25JbWFnZUJ1ZmZlckF0dHJpYnV0ZXMs
IG91dHB1dENhbGxiYWNrLCBkZWNvbXByZXNzaW9uU2Vzc2lvbk91dCkpCi0jZGVmaW5lIFZURGVj
b21wcmVzc2lvblNlc3Npb25DcmVhdGUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVz
c2lvblNlc3Npb25DcmVhdGUKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUs
IFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNhbkFjY2VwdEZvcm1hdERlc2Ny
aXB0aW9uLCBCb29sZWFuLCAoVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmIG5ld0Zvcm1hdERlc2MpLCAoc2Vzc2lvbiwgbmV3Rm9ybWF0RGVz
YykpCi0jZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25DYW5BY2NlcHRGb3JtYXREZXNjcmlw
dGlvbiBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNhbkFjY2Vw
dEZvcm1hdERlc2NyaXB0aW9uCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3Jl
LCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3Vz
RnJhbWVzLCBPU1N0YXR1cywgKFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChz
ZXNzaW9uKSkKLSNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25v
dXNGcmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0
Rm9yQXN5bmNocm9ub3VzRnJhbWVzCi1TT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJD
b3JlLCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSwgT1NT
dGF0dXMsIChWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciwgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzLCB2b2lkKiBz
b3VyY2VGcmFtZVJlZkNvbiwgVlREZWNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNz
aW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLCBzb3VyY2VGcmFtZVJlZkNvbiwgaW5mb0Zs
YWdzT3V0KSkKLSNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUKLVNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9E
ZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVy
LCBDRlN0cmluZ1JlZikKLSNkZWZpbmUga1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNv
ZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xi
b3hTb2Z0TGluay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjAwOThlYWM4MTg2
NDJmMzY0YTc1YzE0YjE4NmM1NjNlNDMzYTk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgotI2luY2x1ZGUgPFZp
ZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVB
REVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCkKLQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlLCBP
U1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIHZpZGVvRm9ybWF0RGVzY3JpcHRpb24sIENGRGljdGlvbmFyeVJlZiB2aWRlb0RlY29k
ZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlSZWYgZGVzdGluYXRpb25JbWFnZUJ1ZmZlckF0
dHJpYnV0ZXMsIGNvbnN0IFZURGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkKiBvdXRw
dXRDYWxsYmFjaywgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiogZGVjb21wcmVzc2lvblNlc3Np
b25PdXQpLCAoYWxsb2NhdG9yLCB2aWRlb0Zvcm1hdERlc2NyaXB0aW9uLCB2aWRlb0RlY29kZXJT
cGVjaWZpY2F0aW9uLCBkZXN0aW5hdGlvbkltYWdlQnVmZmVyQXR0cmlidXRlcywgb3V0cHV0Q2Fs
bGJhY2ssIGRlY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKLSNkZWZpbmUgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkNyZWF0ZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkNyZWF0ZQotU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29s
Ym94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0Rm9ybWF0RGVzY3JpcHRpb24sIEJv
b2xlYW4sIChWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYgbmV3Rm9ybWF0RGVzYyksIChzZXNzaW9uLCBuZXdGb3JtYXREZXNjKSkKLSNkZWZp
bmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNhbkFjY2VwdEZvcm1hdERlc2NyaXB0aW9uIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uQ2FuQWNjZXB0Rm9ybWF0RGVz
Y3JpcHRpb24KLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9v
bGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMsIE9T
U3RhdHVzLCAoVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uKSwgKHNlc3Npb24pKQot
I2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyBz
b2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hy
b25vdXNGcmFtZXMKLVNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVv
VG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lLCBPU1N0YXR1cywgKFZU
RGVjb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyLCBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MsIHZvaWQqIHNvdXJjZUZyYW1l
UmVmQ29uLCBWVERlY29kZUluZm9GbGFncyogaW5mb0ZsYWdzT3V0KSwgKHNlc3Npb24sIHNhbXBs
ZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsIHNvdXJjZUZyYW1lUmVmQ29uLCBpbmZvRmxhZ3NPdXQpKQot
I2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUgc29mdExpbmtfVmlkZW9U
b29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZQotU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0RlY29kZXJTcGVj
aWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIsIENGU3RyaW5n
UmVmKQotI2RlZmluZSBrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJl
QWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0RlY29kZXJT
cGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudC5oCmluZGV4IGRkM2E5N2U3YjNmOTg2ZDFhY2VlMzFkMzJlMDM4OTQ0
NzAzMmIwNjUuLjE4MDg3ZDVlM2QyNmNhMTFkYmEwZjY4NzMwMGQ4Njk2ODgwYjVjZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlUmVlbnF1ZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJh
Y2tJRCkgPSAwOwogCiAgICAgdmlydHVhbCBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZh
c3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIHRpbWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgKaW5kZXggMTY5ZTUyNDE0ZDA3MTYwZWE5ODRmMTIzNjRjNDAzYmM3ZjEwMjYyOC4u
YmFhNzM3ODI4Zjg5NDYxOWM1NGU4YmJhOGUwNjE2YWMyMDBiYzk3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgKQEAgLTQxLDE4ICs0MSwxMiBAQCBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0cmVhbVNlc3Npb247CiAKIHR5cGVk
ZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJhc2VSZWY7Ci10eXBlZGVmIHN0cnVj
dCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZl
ciAqQ1ZPcGVuR0xUZXh0dXJlUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM7Ci1jbGFzcyBNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOwotY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIGNsYXNzIFBsYXRmb3JtQ2xvY2tD
TTsKLWNsYXNzIFRleHR1cmVDYWNoZUNWOwotY2xhc3MgVmlkZW9UZXh0dXJlQ29waWVyQ1Y7Ci1j
bGFzcyBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb247CitjbGFzcyBNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7CkBAIC03MCw2ICs2
NCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpOwogICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJik7CiAKKyAgICB2b2lkIGFkZERpc3BsYXlMYXllcihBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciopOworICAgIHZvaWQgcmVtb3ZlRGlzcGxheUxheWVyKEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKik7CisKICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRlcmVyKEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopOwogCkBAIC05NCwxMCArOTEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdTaXplQ2hhbmdlcygpOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpOwogCi0gICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciogc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Z2V0KCk7IH0KLSAgICBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24qIGRlY29tcHJlc3Npb25T
ZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKTsgfQot
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAg
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgb3ZlcnJpZGU7CkBAIC0xNTYsNiArMTQ5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpc2libGUoYm9vbCkgb3ZlcnJpZGU7CiAKICAgICBN
ZWRpYVRpbWUgZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBNZWRpYVRp
bWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBzdGFy
dFRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBNZWRpYVRpbWUgaW5pdGlhbFRpbWUoKSBjb25z
dCBvdmVycmlkZTsKIApAQCAtMTc0LDEzICsxNjgsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKIAotICAgIE5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKLSAgICBib29sIHVwZGF0ZUxhc3RQ
aXhlbEJ1ZmZlcigpOwotICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOwotICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIG92ZXJy
aWRlOwotICAgIAorCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBv
dmVycmlkZTsKQEAgLTE4OCwxMiArMTc4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFjY2VsZXJh
dGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlBY3Rp
dmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCi0gICAgLy8gTk9URTogQmVjYXVz
ZSB0aGUgb25seSB3YXkgZm9yIE1TRSB0byByZWNpZXZlIGRhdGEgaXMgdGhyb3VnaCBhbiBBcnJh
eUJ1ZmZlciBwcm92aWRlZCBieQotICAgIC8vIGphdmFzY3JpcHQgcnVubmluZyBpbiB0aGUgcGFn
ZSwgdGhlIHZpZGVvIHdpbGwsIGJ5IG5lY2Vzc2l0eSwgYWx3YXlzIGJlIENPUlMgY29ycmVjdCBh
bmQKLSAgICAvLyBpbiB0aGUgcGFnZSdzIG9yaWdpbi4KLSAgICBib29sIGhhc1NpbmdsZVNlY3Vy
aXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgZGlk
UGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQog
ICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIG92ZXJyaWRlOwpAQCAtMjE4
LDkgKzIwMiw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAgICAgdm9p
ZCBkZXN0cm95TGF5ZXIoKTsKLSAgICB2b2lkIGVuc3VyZURlY29tcHJlc3Npb25TZXNzaW9uKCk7
Ci0gICAgdm9pZCBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24oKTsKLQogICAgIGJvb2wgc2hv
dWxkQmVQbGF5aW5nKCkgY29uc3Q7CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQzsKQEAgLTI1MywzNSArMjM0LDIxIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPiBtX3RpbWVKdW1wZWRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fZHVyYXRpb25P
YnNlcnZlcjsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNlc3Npb247
Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fbGFzdFBpeGVsQnVmZmVyOwotICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJbWFnZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9yZ2JDb25mb3JtZXI7Ci0gICAgUmVmUHRyPFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbj4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbjsKICAgICBEZXF1
ZTxSZXRhaW5QdHI8aWQ+PiBtX3NpemVDaGFuZ2VPYnNlcnZlcnM7CiAgICAgVGltZXIgbV9zZWVr
VGltZXI7CiAgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uOwogICAg
IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGU7CiAgICAgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwotICAgIGJvb2wgbV9yZWFkeVN0YXRlSXNXYWl0
aW5nRm9yQXZhaWxhYmxlRnJhbWUgeyBmYWxzZSB9OwogICAgIE1lZGlhVGltZSBtX2xhc3RTZWVr
VGltZTsKICAgICBGbG9hdFNpemUgbV9uYXR1cmFsU2l6ZTsKICAgICBkb3VibGUgbV9yYXRlOwog
ICAgIGJvb2wgbV9wbGF5aW5nOwogICAgIGJvb2wgbV9zZWVraW5nOwotICAgIGVudW0gU2Vla1N0
YXRlIHsKLSAgICAgICAgU2Vla2luZywKLSAgICAgICAgV2FpdGluZ0ZvckF2YWlsYWJsZUZhbWUs
Ci0gICAgICAgIFNlZWtDb21wbGV0ZWQsCi0gICAgfTsKLSAgICBTZWVrU3RhdGUgbV9zZWVrQ29t
cGxldGVkIHsgU2Vla0NvbXBsZXRlZCB9OworICAgIGJvb2wgbV9zZWVrQ29tcGxldGVkOwogICAg
IG11dGFibGUgYm9vbCBtX2xvYWRpbmdQcm9ncmVzc2VkOwotICAgIGJvb2wgbV9oYXNCZWVuQXNr
ZWRUb1BhaW50R0wgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNBdmFpbGFibGVWaWRlb0ZyYW1l
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzQXZhaWxhYmxlVmlkZW9GcmFtZTsKICAgICBib29s
IG1fYWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMgeyBmYWxzZSB9OwogICAgIFJldGFp
blB0cjxQbGF0Zm9ybUxheWVyPiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXI7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBtX3RleHR1cmVDYWNoZTsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9UZXh0dXJlQ29waWVyQ1Y+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwot
ICAgIFJldGFpblB0cjxDVk9wZW5HTFRleHR1cmVSZWY+IG1fbGFzdFRleHR1cmU7CiAjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1Rh
cmdldD4gbV9wbGF5YmFja1RhcmdldDsKICAgICBib29sIG1fc2hvdWxkUGxheVRvVGFyZ2V0IHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAzMzQ5ZWM2NmJlNjBmMmIy
ZjJiMmNmMmRhYTUxNTA2MTFkY2RjZTViLi5hNGMzNGM5MWYzYzkxYjYxOGJlNGNjYzA4ODk5NDU2
NGMwN2NlY2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zMywxNyArMzMsMTIg
QEAKICNpbXBvcnQgIkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24uaCIKICNpbXBvcnQgIkNETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBvcnQgIkZpbGVTeXN0ZW0uaCIKLSNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQuaCIKICNpbXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgotI2ltcG9ydCAiUGl4
ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiUGxhdGZvcm1DbG9ja0NNLmgiCiAjaW1w
b3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1Yu
aCIKLSNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCi0jaW1wb3J0ICJXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24uaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24v
QVZUaW1lLmg+CkBAIC0xMjYsNiArMTIxLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAg
ICAsIG1fcmF0ZSgxKQogICAgICwgbV9wbGF5aW5nKDApCiAgICAgLCBtX3NlZWtpbmcoZmFsc2Up
CisgICAgLCBtX3NlZWtDb21wbGV0ZWQodHJ1ZSkKICAgICAsIG1fbG9hZGluZ1Byb2dyZXNzZWQo
ZmFsc2UpCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXI6OmNyZWF0ZSgpKQpAQCAtMTUyLDcgKzE0OCw3IEBAIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDKE1lZGlhCiAKICAgICAgICAgICAgIGlmIChzaG91bGRCZVBsYXlpbmcoKSkKICAgICAgICAg
ICAgICAgICBbbV9zeW5jaHJvbml6ZXIgc2V0UmF0ZTptX3JhdGVdOwotICAgICAgICAgICAgaWYg
KCFzZWVraW5nKCkgJiYgbV9zZWVrQ29tcGxldGVkID09IFNlZWtDb21wbGV0ZWQpCisgICAgICAg
ICAgICBpZiAoIXNlZWtpbmcoKSkKICAgICAgICAgICAgICAgICBtX3BsYXllci0+dGltZUNoYW5n
ZWQoKTsKICAgICAgICAgfQogCkBAIC0yNDUsMTAgKzI0MSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBNZWRpYVNv
dXJjZVByCiAgICAgVU5VU0VEX1BBUkFNKHVybCk7CiAKICAgICBtX21lZGlhU291cmNlUHJpdmF0
ZSA9IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZSh0aGlzLCBjbGllbnQpOwotICAg
IG1fbWVkaWFTb3VyY2VQcml2YXRlLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmdldCgpKTsKLSAgICBtX21lZGlhU291cmNlUHJpdmF0ZS0+c2V0RGVjb21wcmVzc2lv
blNlc3Npb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7Ci0KLSAgICBhY2NlbGVyYXRl
ZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
QEAgLTM2Miw3ICszNTQsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6aGFzQXVkaW8oKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0VmlzaWJsZShib29sKQogewotICAgIGFjY2VsZXJhdGVkUmVuZGVyaW5n
U3RhdGVDaGFuZ2VkKCk7CisgICAgLy8gTm8tb3AuCiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3QKQEAg
LTQ0NSwxOSArNDM3LDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjp3YWl0Rm9yU2Vla0NvbXBsZXRlZCgpCiAgICAgaWYgKCFtX3NlZWtpbmcpCiAgICAgICAg
IHJldHVybjsKICAgICBMT0coTWVkaWFTb3VyY2UsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OndhaXRGb3JTZWVrQ29tcGxldGVkKCVwKSIsIHRoaXMpOwotICAgIG1fc2Vl
a0NvbXBsZXRlZCA9IFNlZWtpbmc7CisgICAgbV9zZWVrQ29tcGxldGVkID0gZmFsc2U7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVrQ29tcGxldGVk
KCkKIHsKLSAgICBpZiAobV9zZWVrQ29tcGxldGVkID09IFNlZWtDb21wbGV0ZWQpCisgICAgaWYg
KG1fc2Vla0NvbXBsZXRlZCkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChoYXNWaWRlbygpICYm
ICFtX2hhc0F2YWlsYWJsZVZpZGVvRnJhbWUpIHsKLSAgICAgICAgbV9zZWVrQ29tcGxldGVkID0g
V2FpdGluZ0ZvckF2YWlsYWJsZUZhbWU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgTE9H
KE1lZGlhU291cmNlLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVr
Q29tcGxldGVkKCVwKSIsIHRoaXMpOwotICAgIG1fc2Vla0NvbXBsZXRlZCA9IFNlZWtDb21wbGV0
ZWQ7CisgICAgbV9zZWVrQ29tcGxldGVkID0gdHJ1ZTsKICAgICBpZiAoc2hvdWxkQmVQbGF5aW5n
KCkpCiAgICAgICAgIFttX3N5bmNocm9uaXplciBzZXRSYXRlOm1fcmF0ZV07CiAgICAgaWYgKCFt
X3NlZWtpbmcpCkBAIC00NjYsNyArNDU0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNlZWtDb21wbGV0ZWQoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fc2Vl
a2luZyB8fCBtX3NlZWtDb21wbGV0ZWQgIT0gU2Vla0NvbXBsZXRlZDsKKyAgICByZXR1cm4gbV9z
ZWVraW5nIHx8ICFtX3NlZWtDb21wbGV0ZWQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRSYXRlRG91YmxlKGRvdWJsZSByYXRlKQpAQCAtNTI2LDk2
ICs1MTQsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dFNpemUoY29uc3QgSW50U2l6ZSYpCiAgICAgLy8gTm8tb3AuCiB9CiAKLU5hdGl2ZUltYWdlUHRy
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICB1cGRhdGVMYXN0
SW1hZ2UoKTsKLSAgICByZXR1cm4gbV9sYXN0SW1hZ2UuZ2V0KCk7CisgICAgLy8gRklYTUUoMTI1
MTU3KTogSW1wbGVtZW50IHBhaW50aW5nLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlTGFzdFBpeGVsQnVmZmVyKCkKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIGlmIChtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciB8fCAhbV9kZWNvbXByZXNzaW9uU2Vzc2lvbikKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgYXV0byBmbGFncyA9ICFtX2xhc3RQaXhlbEJ1ZmZlciA/IFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRlciA6IFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6RXhhY3RUaW1lOwotICAgIGF1dG8gbmV3UGl4ZWxCdWZmZXIgPSBtX2RlY29tcHJl
c3Npb25TZXNzaW9uLT5pbWFnZUZvclRpbWUoY3VycmVudE1lZGlhVGltZSgpLCBmbGFncyk7Ci0g
ICAgaWYgKCFuZXdQaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9s
YXN0UGl4ZWxCdWZmZXIgPSBuZXdQaXhlbEJ1ZmZlcjsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZUxhc3RJbWFn
ZSgpCi17Ci0gICAgaWYgKCF1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgQVNTRVJUKG1fbGFzdFBpeGVsQnVmZmVyKTsKLQotICAgIGlmICghbV9y
Z2JDb25mb3JtZXIpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAoa0NWUGl4ZWxGb3Jt
YXRUeXBlXzMyQkdSQSkgfTsKLSAgICAgICAgbV9yZ2JDb25mb3JtZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+KChDRkRpY3Rpb25hcnlSZWYpYXR0cmlidXRlcyk7
Ci0gICAgfQotCi0gICAgbV9sYXN0SW1hZ2UgPSBtX3JnYkNvbmZvcm1lci0+Y3JlYXRlSW1hZ2VG
cm9tUGl4ZWxCdWZmZXIobV9sYXN0UGl4ZWxCdWZmZXIuZ2V0KCkpOwotICAgIHJldHVybiB0cnVl
OwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi17Ci0gICAg
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7Ci19Ci0KLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29u
dGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVj
dCkKLXsKLSAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGF1dG8gaW1hZ2UgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7Ci0gICAg
aWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoMCwgMCwg
Q0dJbWFnZUdldFdpZHRoKGltYWdlLmdldCgpKSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQo
KSkpOwotICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVJlY3Quc2l6ZSgp
LCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwotfQotCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0LCBQbGF0Zm9ybTNET2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
M0RlbnVtIG91dHB1dFRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQotewotICAgIGlmIChmbGlwWSB8fCBwcmVtdWx0aXBseUFscGhhKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFpbnQg
aW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0ZQot
ICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhlIG5h
dGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZAotICAgIC8vIGluIHBhZ2UuCi0gICAg
aWYgKCFtX2hhc0JlZW5Bc2tlZFRvUGFpbnRHTCkgewotICAgICAgICBtX2hhc0JlZW5Bc2tlZFRv
UGFpbnRHTCA9IHRydWU7Ci0gICAgICAgIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2Vk
KCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKGNvbnRleHQpOwotCi0gICAgaWYgKHVwZGF0ZUxhc3RQ
aXhlbEJ1ZmZlcigpKSB7Ci0gICAgICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCFtX3RleHR1cmVDYWNoZSkgewotICAg
ICAgICAgICAgbV90ZXh0dXJlQ2FjaGUgPSBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKCpjb250ZXh0
KTsKLSAgICAgICAgICAgIGlmICghbV90ZXh0dXJlQ2FjaGUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9sYXN0VGV4dHVyZSA9IG1fdGV4dHVy
ZUNhY2hlLT50ZXh0dXJlRnJvbUltYWdlKG1fbGFzdFBpeGVsQnVmZmVyLmdldCgpLCBvdXRwdXRU
YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlKTsKLSAgICB9Ci0KLSAg
ICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9sYXN0UGl4ZWxCdWZmZXIu
Z2V0KCkpOwotICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KG1fbGFz
dFBpeGVsQnVmZmVyLmdldCgpKTsKLQotICAgIGlmICghbV92aWRlb1RleHR1cmVDb3BpZXIpCi0g
ICAgICAgIG1fdmlkZW9UZXh0dXJlQ29waWVyID0gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1RleHR1
cmVDb3BpZXJDVj4oKmNvbnRleHQpOwotCi0gICAgcmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29waWVy
LT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUobV9sYXN0VGV4dHVyZS5nZXQoKSwg
d2lkdGgsIGhlaWdodCwgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOworICAgIC8v
IEZJWE1FKDEyNTE1Nyk6IEltcGxlbWVudCBwYWludGluZy4KIH0KIAogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25z
dApAQCAtNjMwLDEzICs1MzYsMTAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdT
dGF0ZUNoYW5nZWQoKQogewotICAgIGlmICghbV9oYXNCZWVuQXNrZWRUb1BhaW50R0wgJiYgbV9w
bGF5ZXItPnZpc2libGUoKSAmJiBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJp
bmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkgewotICAgICAgICBkZXN0cm95RGVjb21wcmVz
c2lvblNlc3Npb24oKTsKKyAgICBpZiAobV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVu
ZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAgIGVuc3VyZUxheWVyKCk7
Ci0gICAgfSBlbHNlIHsKKyAgICBlbHNlCiAgICAgICAgIGRlc3Ryb3lMYXllcigpOwotICAgICAg
ICBlbnN1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbigpOwotICAgIH0KIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnND
aGFuZ2VkKCkKQEAgLTcwNSwxMiArNjA4LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjplbnN1cmVMYXllcigpCiAjZW5kaWYKIAogICAgIFttX3N5bmNocm9u
aXplciBhZGRSZW5kZXJlcjptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKV07Ci0gICAg
aWYgKG1fbWVkaWFTb3VyY2VQcml2YXRlKQotICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZS0+
c2V0VmlkZW9MYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKSk7Ci0jaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQorICAgIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xh
eWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLCBzbmFwcGVkSW50UmVjdChtX3Bs
YXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXplKCkpOwogI2Vu
ZGlmCi0gICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5n
ZWQobV9wbGF5ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6ZGVzdHJveUxheWVyKCkKQEAgLTcyMiwzOCArNjIzLDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmRlc3Ryb3lMYXllcigpCiAgICAgW21fc3luY2hy
b25pemVyIHJlbW92ZVJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0
VGltZTpjdXJyZW50VGltZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKICAgICAgICAg
Ly8gTm8tb3AuCiAgICAgfV07Ci0KLSAgICBpZiAobV9tZWRpYVNvdXJjZVByaXZhdGUpCi0gICAg
ICAgIG1fbWVkaWFTb3VyY2VQcml2YXRlLT5zZXRWaWRlb0xheWVyKG51bGxwdHIpOwotI2lmIFBM
QVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSkKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZp
ZGVvTGF5ZXIoKTsKLSNlbmRpZgogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gbnVs
bHB0cjsKLSAgICBzZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKGZhbHNlKTsKLSAgICBtX3BsYXll
ci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7Ci19
Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplbnN1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbigpCi17Ci0gICAgaWYgKG1fZGVjb21wcmVzc2lvblNlc3Npb24pCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb246OmNyZWF0ZSgpOwotICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24t
PnNldFRpbWViYXNlKFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pOwotICAgIG1fbWVkaWFTb3Vy
Y2VQcml2YXRlLT5zZXREZWNvbXByZXNzaW9uU2Vzc2lvbihtX2RlY29tcHJlc3Npb25TZXNzaW9u
LmdldCgpKTsKLQotICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01v
ZGVDaGFuZ2VkKG1fcGxheWVyKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbigpCi17Ci0gICAgaWYgKCFt
X2RlY29tcHJlc3Npb25TZXNzaW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21lZGlhU291
cmNlUHJpdmF0ZS0+c2V0RGVjb21wcmVzc2lvblNlc3Npb24obnVsbHB0cik7Ci0gICAgbV9kZWNv
bXByZXNzaW9uU2Vzc2lvbi0+aW52YWxpZGF0ZSgpOwotICAgIG1fZGVjb21wcmVzc2lvblNlc3Np
b24gPSBudWxscHRyOwotICAgIHNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoZmFsc2UpOwogfQog
CiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2hvdWxkQmVQbGF5
aW5nKCkgY29uc3QKQEAgLTc2NywxOCArNjM3LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCBmbGFnKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9oYXNBdmFpbGFibGVWaWRlb0ZyYW1lID0gZmxhZzsKICAg
ICB1cGRhdGVBbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlcygpOwotCi0gICAgaWYgKCFt
X2hhc0F2YWlsYWJsZVZpZGVvRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGxheWVy
LT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKLSAgICBpZiAobV9zZWVrQ29tcGxldGVkID09
IFdhaXRpbmdGb3JBdmFpbGFibGVGYW1lKQotICAgICAgICBzZWVrQ29tcGxldGVkKCk7Ci0KLSAg
ICBpZiAobV9yZWFkeVN0YXRlSXNXYWl0aW5nRm9yQXZhaWxhYmxlRnJhbWUpIHsKLSAgICAgICAg
bV9yZWFkeVN0YXRlSXNXYWl0aW5nRm9yQXZhaWxhYmxlRnJhbWUgPSBmYWxzZTsKLSAgICAgICAg
bV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7Ci0gICAgfQogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUo
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiByZW5kZXJlciwgYm9vbCBmbGFnKQpAQCAtNzk5
LDcgKzY1Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp1
cGRhdGVBbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlCiAgICAgYm9vbCBhbGxSZW5kZXJl
cnNIYXZlQXZhaWxhYmxlU2FtcGxlcyA9IHRydWU7CiAKICAgICBkbyB7Ci0gICAgICAgIGlmICho
YXNWaWRlbygpICYmICFtX2hhc0F2YWlsYWJsZVZpZGVvRnJhbWUpIHsKKyAgICAgICAgaWYgKG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICYmICFtX2hhc0F2YWlsYWJsZVZpZGVvRnJhbWUpIHsK
ICAgICAgICAgICAgIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzID0gZmFsc2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtOTU2LDExICs4MTQsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZQogICAgIGVsc2UKICAgICAgICAgW21fc3luY2hyb25pemVyIHNldFJh
dGU6MF07CiAKLSAgICBpZiAobV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyRW51bXM6OkhhdmVD
dXJyZW50RGF0YSAmJiBoYXNWaWRlbygpICYmICFtX2hhc0F2YWlsYWJsZVZpZGVvRnJhbWUpIHsK
LSAgICAgICAgbV9yZWFkeVN0YXRlSXNXYWl0aW5nRm9yQXZhaWxhYmxlRnJhbWUgPSB0cnVlOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2Vk
KCk7CiB9CiAKQEAgLTk3Myw2ICs4MjYsNDIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1MKICAg
ICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKiBkaXNwbGF5TGF5ZXIpCit7CisgICAgQVNTRVJUKGRpc3BsYXlMYXllcik7
CisgICAgaWYgKGRpc3BsYXlMYXllciA9PSBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBkaXNwbGF5
TGF5ZXI7CisgICAgW21fc3luY2hyb25pemVyIGFkZFJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmdldCgpXTsKKyAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5k
ZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisKKyAgICAvLyBGSVhNRTogbW92ZSB0aGlzIHNv
bWV3aGVyZSBhcHByb3ByaWF0ZToKKyAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxh
YmxlKCk7CisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllciht
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKSwgc25hcHBlZEludFJlY3QobV9wbGF5ZXIt
PmNsaWVudCgpLm1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgpKTsKKyNlbmRpZgor
fQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVtb3ZlRGlz
cGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKiBkaXNwbGF5TGF5ZXIpCit7Cisg
ICAgaWYgKGRpc3BsYXlMYXllciAhPSBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgQ01UaW1lIGN1cnJlbnRUaW1lID0gQ01UaW1lYmFzZUdldFRpbWUo
W21fc3luY2hyb25pemVyIHRpbWViYXNlXSk7CisgICAgW21fc3luY2hyb25pemVyIHJlbW92ZVJl
bmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpIGF0VGltZTpjdXJyZW50VGlt
ZSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MKXsKKyAgICAgICAgLy8gTm8tb3AuCisgICAg
fV07CisKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IG51bGxwdHI7CisgICAgbV9w
bGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIp
OworCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CisgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVy
KCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1Jl
bmRlcmVyKQogewogICAgIGlmIChtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuY29udGFp
bnMoYXVkaW9SZW5kZXJlcikpCkBAIC0xMDA1LDcgKzg5NCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVm
ZmVyQXVkCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjaGFy
YWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICB1cGRhdGVBbGxSZW5kZXJlcnNIYXZlQXZhaWxh
YmxlU2FtcGxlcygpOwogICAgIG1fcGxheWVyLT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IDM0OGFiYjA3OGMxYWFiYmViYjVjNGQ4N2EwMWJmNzdjZDU1NDViY2EuLjU2MDIw
ZTFlYTg3ZDNhMzNhMGJmN2YxM2QzMjNiMzEyNTU0NzJmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJp
dmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKQEAgLTM1LDcgKzM1LDYg
QEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNf
Q0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU3RyZWFtRGF0
YVBhcnNlcjsKIE9CSkNfQ0xBU1MgTlNFcnJvcjsKIE9CSkNfQ0xBU1MgTlNPYmplY3Q7CkBAIC00
OCw3ICs0Nyw2IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzsK
IGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudDsKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjsKIAogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1Ymxp
YyBNZWRpYVNvdXJjZVByaXZhdGUgewogcHVibGljOgpAQCAtNzMsMTcgKzcxLDEyIEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdDsKICAgICBib29sIGhhc1ZpZGVvKCkgY29u
c3Q7Ci0gICAgYm9vbCBoYXNTZWxlY3RlZFZpZGVvKCkgY29uc3Q7CiAKICAgICB2b2lkIHdpbGxT
ZWVrKCk7CiAgICAgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpOwogICAgIE1lZGlh
VGltZSBmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVk
aWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVz
aG9sZCk7CiAgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Q7CiAKLSAgICB2b2lkIGhh
c1NlbGVjdGVkVmlkZW9DaGFuZ2VkKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDJik7Ci0gICAg
dm9pZCBzZXRWaWRlb0xheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7Ci0gICAgdm9p
ZCBzZXREZWNvbXByZXNzaW9uU2Vzc2lvbihXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24qKTsK
LQogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyosIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopOwogCkBA
IC05NSw4ICs4OCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb25pdG9yU291cmNlQnVmZmVycygp
OwogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGUqKTsKIAot
ICAgIHZvaWQgc2V0U291cmNlQnVmZmVyV2l0aFNlbGVjdGVkVmlkZW8oU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqKTsKLQogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzsKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyogbV9wbGF5
ZXI7CkBAIC0xMDQsNyArOTUsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgVmVjdG9yPFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKj4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOwogICAgIERlcXVl
PFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKj4gbV9zb3VyY2VCdWZmZXJzTmVlZGluZ1Nlc3Np
b25zOwotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBtX3NvdXJjZUJ1ZmZlcldpdGhT
ZWxlY3RlZFZpZGVvIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc0VuZGVkOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0K
aW5kZXggNWIyMDliZjM2MzE0NDNjNjQwZjkxOTY3N2VhZWY0ZTliZTdhNWJiMi4uYWUwZTc2YjU5
YjE4ZTFhNWUyN2Y3N2ZiM2ZiNzAyODMxNjdmODVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCkBAIC0xNzQsMTggKzE3NCwx
NCBAQCBib29sIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QKICAg
ICByZXR1cm4gc3RkOjphbnlfb2YobV9hY3RpdmVTb3VyY2VCdWZmZXJzLmJlZ2luKCksIG1fYWN0
aXZlU291cmNlQnVmZmVycy5lbmQoKSwgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQ0hhc0F1ZGlv
KTsKIH0KIAotYm9vbCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0
CitzdGF0aWMgYm9vbCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDSGFzVmlkZW8oU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIHNvdXJjZUJ1ZmZlcikKIHsKLSAgICByZXR1cm4gc3RkOjphbnlf
b2YobV9hY3RpdmVTb3VyY2VCdWZmZXJzLmJlZ2luKCksIG1fYWN0aXZlU291cmNlQnVmZmVycy5l
bmQoKSwgW10gKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBzb3VyY2VCdWZmZXIpIHsKLSAg
ICAgICAgcmV0dXJuIHNvdXJjZUJ1ZmZlci0+aGFzVmlkZW8oKTsKLSAgICB9KTsKKyAgICByZXR1
cm4gc291cmNlQnVmZmVyLT5oYXNWaWRlbygpOwogfQogCi1ib29sIE1lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakM6Omhhc1NlbGVjdGVkVmlkZW8oKSBjb25zdAorYm9vbCBNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0ZDo6YW55X29mKG1f
YWN0aXZlU291cmNlQnVmZmVycy5iZWdpbigpLCBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZW5kKCks
IFtdIChTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogc291cmNlQnVmZmVyKSB7Ci0gICAgICAg
IHJldHVybiBzb3VyY2VCdWZmZXItPmhhc1NlbGVjdGVkVmlkZW8oKTsKLSAgICB9KTsKKyAgICBy
ZXR1cm4gc3RkOjphbnlfb2YobV9hY3RpdmVTb3VyY2VCdWZmZXJzLmJlZ2luKCksIG1fYWN0aXZl
U291cmNlQnVmZmVycy5lbmQoKSwgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQ0hhc1ZpZGVvKTsK
IH0KIAogdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjp3aWxsU2VlaygpCkBAIC0yMjIs
NDIgKzIxOCw2IEBAIEZsb2F0U2l6ZSBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpuYXR1cmFs
U2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDOjpoYXNTZWxlY3RlZFZpZGVvQ2hhbmdlZChTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyYgc291cmNlQnVmZmVyKQotewotICAgIGJvb2wgaGFzU2VsZWN0ZWRWaWRlbyA9IHNv
dXJjZUJ1ZmZlci5oYXNTZWxlY3RlZFZpZGVvKCk7Ci0gICAgaWYgKG1fc291cmNlQnVmZmVyV2l0
aFNlbGVjdGVkVmlkZW8gPT0gJnNvdXJjZUJ1ZmZlciAmJiAhaGFzU2VsZWN0ZWRWaWRlbykKLSAg
ICAgICAgc2V0U291cmNlQnVmZmVyV2l0aFNlbGVjdGVkVmlkZW8obnVsbHB0cik7Ci0gICAgZWxz
ZSBpZiAobV9zb3VyY2VCdWZmZXJXaXRoU2VsZWN0ZWRWaWRlbyAhPSAmc291cmNlQnVmZmVyICYm
IGhhc1NlbGVjdGVkVmlkZW8pCi0gICAgICAgIHNldFNvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZp
ZGVvKCZzb3VyY2VCdWZmZXIpOwotfQotCi12b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6
OnNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqIGxheWVyKQotewotICAg
IGlmIChtX3NvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZpZGVvKQotICAgICAgICBtX3NvdXJjZUJ1
ZmZlcldpdGhTZWxlY3RlZFZpZGVvLT5zZXRWaWRlb0xheWVyKGxheWVyKTsKLX0KLQotdm9pZCBN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpzZXREZWNvbXByZXNzaW9uU2Vzc2lvbihXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb24qIGRlY29tcHJlc3Npb25TZXNzaW9uKQotewotICAgIGlmICht
X3NvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZpZGVvKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlcldp
dGhTZWxlY3RlZFZpZGVvLT5zZXREZWNvbXByZXNzaW9uU2Vzc2lvbihkZWNvbXByZXNzaW9uU2Vz
c2lvbik7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c2V0U291cmNlQnVm
ZmVyV2l0aFNlbGVjdGVkVmlkZW8oU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHNvdXJjZUJ1
ZmZlcikKLXsKLSAgICBpZiAobV9zb3VyY2VCdWZmZXJXaXRoU2VsZWN0ZWRWaWRlbykgewotICAg
ICAgICBtX3NvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZpZGVvLT5zZXRWaWRlb0xheWVyKG51bGxw
dHIpOwotICAgICAgICBtX3NvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZpZGVvLT5zZXREZWNvbXBy
ZXNzaW9uU2Vzc2lvbihudWxscHRyKTsKLSAgICB9Ci0KLSAgICBtX3NvdXJjZUJ1ZmZlcldpdGhT
ZWxlY3RlZFZpZGVvID0gc291cmNlQnVmZmVyOwotCi0gICAgaWYgKG1fc291cmNlQnVmZmVyV2l0
aFNlbGVjdGVkVmlkZW8pIHsKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJXaXRoU2VsZWN0ZWRWaWRl
by0+c2V0VmlkZW9MYXllcihtX3BsYXllci0+c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkpOwot
ICAgICAgICBtX3NvdXJjZUJ1ZmZlcldpdGhTZWxlY3RlZFZpZGVvLT5zZXREZWNvbXByZXNzaW9u
U2Vzc2lvbihtX3BsYXllci0+ZGVjb21wcmVzc2lvblNlc3Npb24oKSk7Ci0gICAgfQotfQotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmgKaW5kZXggYTBhMDE3ZTM3MzMxMTMzODc3NGM2ZmEyMDY0Mjc0MzgwZjNlMWVhZS4uM2U1YmM4
MWNhNjM5OGIyYTQ5YmE4NzkxZWEzZTJkZTFlM2ZkMjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC02Miw3ICs2Miw2
IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzsKIGNsYXNzIFZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOwotY2xhc3MgV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50IHsK
IHB1YmxpYzoKQEAgLTg5LDcgKzg4LDYgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc0NvZGVk
RnJhbWUoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSk7CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNTZWxlY3Rl
ZFZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0OwogCiAgICAgdm9pZCB0
cmFja0RpZENoYW5nZUVuYWJsZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMq
KTsKQEAgLTExMSw5ICsxMDksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXllckRpZFJlY2VpdmVF
cnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICopOwogICAgIHZvaWQg
cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5T
RXJyb3IgKik7CiAKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIqKTsKLSAgICB2b2lkIHNldERlY29tcHJlc3Npb25TZXNzaW9uKFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbiopOwotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsKIApAQCAtMTU3LDcgKzE1
Miw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TRXJyb3I+IG1faGRjcEVycm9yOwogICAg
IE9TT2JqZWN0UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBtX2hhc1Nlc3Npb25TZW1hcGhvcmU7
CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfZ3JvdXBfdD4gbV9pc0FwcGVuZGluZ0dyb3VwOwot
ICAgIFJlZlB0cjxXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24+IG1fZGVjb21wcmVzc2lvblNl
c3Npb247CiAKICAgICBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKiBtX21lZGlhU291cmNlOwog
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bQppbmRleCBkYTMwZTA5Yzc2ZDExZDYzZTM0OGI4YTM3MzMwYWM0NzBmN2E1YWRmLi5hMWRhOWFl
YzY5ZDQwZWExMmIwZTlmMDhkODhmNGQyNzcwNDk0YzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjksMTAgKzI5
LDggQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAj
aW1wb3J0ICJBVkZvdW5kYXRpb25TUEkuaCIKLSNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgiCiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lv
bi5oIgogI2ltcG9ydCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgotI2ltcG9ydCAi
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNp
bXBvcnQgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oIgpAQCAtNDQsMTkgKzQyLDIwIEBACiAjaW1wb3J0ICJTb2Z0TGlu
a2luZy5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9ydCAi
VGltZVJhbmdlcy5oIgorI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCi0j
aW1wb3J0ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCIKKyNpbXBvcnQgIkluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldFRy
YWNrLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KLSNpbXBvcnQgPG1hcD4KICNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cnVudGltZS9UeXBlZEFycmF5SW5saW5l
cy5oPgorI2ltcG9ydCA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1dlYWtQdHIuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgot
I2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2ltcG9ydCA8bWFwPgogCiAjcHJhZ21hIG1h
cmsgLSBTb2Z0IExpbmtpbmcKIApAQCAtNjUyLDExICs2NTEsMTQgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6ZGVzdHJveVBhcnNlcigpCiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRlc3Ryb3lSZW5kZXJlcnMoKQogewotICAgIGlmIChtX2Rpc3BsYXlMYXll
cikKLSAgICAgICAgc2V0VmlkZW9MYXllcihudWxscHRyKTsKLQotICAgIGlmIChtX2RlY29tcHJl
c3Npb25TZXNzaW9uKQotICAgICAgICBzZXREZWNvbXByZXNzaW9uU2Vzc2lvbihudWxscHRyKTsK
KyAgICBpZiAobV9kaXNwbGF5TGF5ZXIpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCisg
ICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+cmVtb3ZlRGlzcGxheUxheWVyKG1f
ZGlzcGxheUxheWVyLmdldCgpKTsKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGZsdXNoXTsKKyAg
ICAgICAgW21fZGlzcGxheUxheWVyIHN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhXTsKKyAgICAgICAg
W21fZXJyb3JMaXN0ZW5lciBzdG9wT2JzZXJ2aW5nTGF5ZXI6bV9kaXNwbGF5TGF5ZXIuZ2V0KCld
OworICAgICAgICBtX2Rpc3BsYXlMYXllciA9IG51bGxwdHI7CisgICAgfQogCiAgICAgZm9yIChh
dXRvJiByZW5kZXJlciA6IG1fYXVkaW9SZW5kZXJlcnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYg
KG1fbWVkaWFTb3VyY2UpCkBAIC02OTQsMTEgKzY5Niw2IEBAIGJvb2wgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6Omhhc1ZpZGVvKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpOwogfQogCi1ib29sIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpoYXNTZWxlY3RlZFZpZGVvKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9lbmFibGVkVmlkZW9UcmFja0lEICE9IC0xOwotfQotCiBib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpoYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50ICYm
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKTsKQEAgLTcxMCwyMSArNzA3
LDI0IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5h
YmxlZChWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291CiAgICAgaWYgKCF0cmFjay0+c2VsZWN0ZWQo
KSAmJiBtX2VuYWJsZWRWaWRlb1RyYWNrSUQgPT0gdHJhY2tJRCkgewogICAgICAgICBtX2VuYWJs
ZWRWaWRlb1RyYWNrSUQgPSAtMTsKICAgICAgICAgW21fcGFyc2VyIHNldFNob3VsZFByb3ZpZGVN
ZWRpYURhdGE6Tk8gZm9yVHJhY2tJRDp0cmFja0lEXTsKLQotICAgICAgICBpZiAobV9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbikKLSAgICAgICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24tPnN0b3BS
ZXF1ZXN0aW5nTWVkaWFEYXRhKCk7CisgICAgICAgIGlmIChtX21lZGlhU291cmNlKQorICAgICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnJlbW92ZURpc3BsYXlMYXllcihtX2Rpc3Bs
YXlMYXllci5nZXQoKSk7CiAgICAgfSBlbHNlIGlmICh0cmFjay0+c2VsZWN0ZWQoKSkgewogICAg
ICAgICBtX2VuYWJsZWRWaWRlb1RyYWNrSUQgPSB0cmFja0lEOwogICAgICAgICBbbV9wYXJzZXIg
c2V0U2hvdWxkUHJvdmlkZU1lZGlhRGF0YTpZRVMgZm9yVHJhY2tJRDp0cmFja0lEXTsKLQotICAg
ICAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICAgICAgbV9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbi0+cmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeShbdGhpcywgdHJhY2tJRF0g
eworICAgICAgICBpZiAoIW1fZGlzcGxheUxheWVyKSB7CisgICAgICAgICAgICBtX2Rpc3BsYXlM
YXllciA9IGFkb3B0TlMoW2FsbG9jQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJbnN0YW5jZSgp
IGluaXRdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgc2V0
TmFtZTpAIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyIl07CisjZW5kaWYKKyAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciByZXF1ZXN0TWVkaWFE
YXRhV2hlblJlYWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6
XnsKICAgICAgICAgICAgICAgICBkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRyYWNrSUQp
OwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgICAgIFttX2Vycm9y
TGlzdGVuZXIgYmVnaW5PYnNlcnZpbmdMYXllcjptX2Rpc3BsYXlMYXllci5nZXQoKV07CiAgICAg
ICAgIH0KKyAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCisgICAgICAgICAgICBtX21lZGlhU291
cmNlLT5wbGF5ZXIoKS0+YWRkRGlzcGxheUxheWVyKG1fZGlzcGxheUxheWVyLmdldCgpKTsKICAg
ICB9Ci0KLSAgICBtX21lZGlhU291cmNlLT5oYXNTZWxlY3RlZFZpZGVvQ2hhbmdlZCgqdGhpcyk7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5h
YmxlZChBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyogdHJhY2spCkBAIC03OTMs
MTQgKzc5Myw2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKCkKICAg
ICBpZiAobV9kaXNwbGF5TGF5ZXIpCiAgICAgICAgIFttX2Rpc3BsYXlMYXllciBmbHVzaEFuZFJl
bW92ZUltYWdlXTsKIAotICAgIGlmIChtX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7Ci0gICAgICAg
IG1fZGVjb21wcmVzc2lvblNlc3Npb24tPmZsdXNoKCk7Ci0gICAgICAgIG1fZGVjb21wcmVzc2lv
blNlc3Npb24tPm5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKFt3ZWFrVGhpcyA9IGNy
ZWF0ZVdlYWtQdHIoKV0gewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzICYmIHdlYWtUaGlzLT5t
X21lZGlhU291cmNlKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX21lZGlhU291cmNlLT5w
bGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSh0cnVlKTsKLSAgICAgICAgfSk7Ci0g
ICAgfQotCiAgICAgZm9yIChhdXRvJiByZW5kZXJlciA6IG1fYXVkaW9SZW5kZXJlcnMudmFsdWVz
KCkpCiAgICAgICAgIFtyZW5kZXJlciBmbHVzaF07CiB9CkBAIC04NjAsMTYgKzg1Miw5IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYg
dHJhY2tJRFN0cmluZykKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsK
ICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2go
JXApIC0gdHJhY2tJZDogJWQiLCB0aGlzLCB0cmFja0lEKTsKIAotICAgIGlmICh0cmFja0lEID09
IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkgeworICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkKICAgICAgICAgZmx1c2gobV9kaXNwbGF5TGF5ZXIuZ2V0KCkpOwotICAgICAg
ICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICAgICAgbV9kZWNvbXByZXNz
aW9uU2Vzc2lvbi0+Zmx1c2goKTsKLSAgICAgICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24t
Pm5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQ
dHIoKV0gewotICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiB3ZWFrVGhpcy0+bV9tZWRp
YVNvdXJjZSkKLSAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbWVkaWFTb3VyY2UtPnBs
YXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJh
Y2tJRCkpCisgICAgZWxzZSBpZiAobV9hdWRpb1JlbmRlcmVycy5jb250YWlucyh0cmFja0lEKSkK
ICAgICAgICAgZmx1c2gobV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCkuZ2V0KCkpOwogfQog
CkBAIC05MTksMTQgKzkwNCw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVu
cXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2RlY29tcHJlc3Npb25TZXNzaW9uKQotICAg
ICAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vzc2lvbi0+ZW5xdWV1ZVNhbXBsZShwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwotCi0gICAgICAgIGlmIChtX2Rpc3BsYXlMYXll
cikgewotICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6cGxh
dGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKLSAgICAgICAgICAgIGlmIChtX21l
ZGlhU291cmNlKQotICAgICAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRI
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCFzYW1wbGUtPmlzTm9uRGlzcGxheWluZygpKTsKLSAgICAg
ICAgfQorICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9y
bVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOworICAgICAgICBpZiAobV9tZWRpYVNvdXJj
ZSkKKyAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVW
aWRlb0ZyYW1lKCFzYW1wbGUtPmlzTm9uRGlzcGxheWluZygpKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBhdXRvIHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCk7CiAgICAg
ICAgIFtyZW5kZXJlciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcl07CkBAIC05MzksOSArOTE5LDggQEAgYm9vbCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6aXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJh
Y2sKIHsKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAo
dHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpCi0gICAgICAgIHJldHVybiAhbV9kZWNv
bXByZXNzaW9uU2Vzc2lvbiB8fCBtX2RlY29tcHJlc3Npb25TZXNzaW9uLT5pc1JlYWR5Rm9yTW9y
ZU1lZGlhRGF0YSgpOwotCi0gICAgaWYgKG1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJ
RCkpCisgICAgICAgIHJldHVybiBbbV9kaXNwbGF5TGF5ZXIgaXNSZWFkeUZvck1vcmVNZWRpYURh
dGFdOworICAgIGVsc2UgaWYgKG1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJRCkpCiAg
ICAgICAgIHJldHVybiBbbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCkgaXNSZWFkeUZvck1v
cmVNZWRpYURhdGFdOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTgyLDEyICs5NjEsOSBAQCBG
bG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkKIAogdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxl
cyhpbnQgdHJhY2tJRCkKIHsKLSAgICBMT0coTWVkaWEsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkgLSB0cmFjayglZCkiLCB0aGlz
LCB0cmFja0lEKTsKLSAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsK
LSAgICAgICAgaWYgKG1fZGVjb21wcmVzc2lvblNlc3Npb24pCi0gICAgICAgICAgICBtX2RlY29t
cHJlc3Npb25TZXNzaW9uLT5zdG9wUmVxdWVzdGluZ01lZGlhRGF0YSgpOworICAgIGlmICh0cmFj
a0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkKICAgICAgICAgW21fZGlzcGxheUxheWVyIHN0
b3BSZXF1ZXN0aW5nTWVkaWFEYXRhXTsKLSAgICB9IGVsc2UgaWYgKG1fYXVkaW9SZW5kZXJlcnMu
Y29udGFpbnModHJhY2tJRCkpCisgICAgZWxzZSBpZiAobV9hdWRpb1JlbmRlcmVycy5jb250YWlu
cyh0cmFja0lEKSkKICAgICAgICAgW21fYXVkaW9SZW5kZXJlcnMuZ2V0KHRyYWNrSUQpIHN0b3BS
ZXF1ZXN0aW5nTWVkaWFEYXRhXTsKICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xMDAyLDc2ICs5NzgsMTYgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWkKIHsK
ICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAodHJhY2tJ
RCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKLSAgICAgICAgaWYgKG1fZGVjb21wcmVzc2lv
blNlc3Npb24pIHsKLSAgICAgICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24tPnJlcXVlc3RN
ZWRpYURhdGFXaGVuUmVhZHkoW3RoaXMsIHRyYWNrSURdIHsKLSAgICAgICAgICAgICAgICBkaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRyYWNrSUQpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKG1fZGlzcGxheUxheWVyKSB7Ci0gICAgICAgICAgICBbbV9kaXNw
bGF5TGF5ZXIgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6ZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4gewotICAgICAgICAgICAgICAgIGRpZEJlY29tZVJlYWR5
Rm9yTW9yZVNhbXBsZXModHJhY2tJRCk7Ci0gICAgICAgICAgICB9XTsKLSAgICAgICAgfQotICAg
IH0gZWxzZSBpZiAobV9hdWRpb1JlbmRlcmVycy5jb250YWlucyh0cmFja0lEKSkgewotICAgICAg
ICBbbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCkgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFk
eU9uUXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl4geworICAgICAg
ICBbbV9kaXNwbGF5TGF5ZXIgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6ZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgICAgICBkaWRCZWNvbWVS
ZWFkeUZvck1vcmVTYW1wbGVzKHRyYWNrSUQpOwogICAgICAgICB9XTsKLSAgICB9Ci19Ci0KLXZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIqIGxheWVyKQotewotICAgIGlmIChsYXllciA9PSBtX2Rpc3BsYXlMYXll
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKCFsYXllciB8fCAhbV9kZWNvbXByZXNz
aW9uU2Vzc2lvbiB8fCBoYXNTZWxlY3RlZFZpZGVvKCkpOwotCi0gICAgaWYgKG1fZGlzcGxheUxh
eWVyKSB7Ci0gICAgICAgIFttX2Rpc3BsYXlMYXllciBmbHVzaF07Ci0gICAgICAgIFttX2Rpc3Bs
YXlMYXllciBzdG9wUmVxdWVzdGluZ01lZGlhRGF0YV07Ci0gICAgICAgIFttX2Vycm9yTGlzdGVu
ZXIgc3RvcE9ic2VydmluZ0xheWVyOm1fZGlzcGxheUxheWVyLmdldCgpXTsKLSAgICB9Ci0KLSAg
ICBtX2Rpc3BsYXlMYXllciA9IGxheWVyOwotCi0gICAgaWYgKG1fZGlzcGxheUxheWVyKSB7Ci0g
ICAgICAgIFttX2Rpc3BsYXlMYXllciByZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25RdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XiB7Ci0gICAgICAgICAgICBkaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fZW5hYmxlZFZpZGVvVHJhY2tJRCk7CisgICAgfSBl
bHNlIGlmIChtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKSB7CisgICAgICAgIFtt
X2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKSByZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25R
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICAgICAgICAg
IGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXModHJhY2tJRCk7CiAgICAgICAgIH1dOwotICAg
ICAgICBbbV9lcnJvckxpc3RlbmVyIGJlZ2luT2JzZXJ2aW5nTGF5ZXI6bV9kaXNwbGF5TGF5ZXIu
Z2V0KCldOwotICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZVJlZW5xdWVTYW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVyKG1fZW5h
YmxlZFZpZGVvVHJhY2tJRCkpOwogICAgIH0KIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2V0RGVjb21wcmVzc2lvblNlc3Npb24oV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uKiBkZWNvbXByZXNzaW9uU2Vzc2lvbikKLXsKLSAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vz
c2lvbiA9PSBkZWNvbXByZXNzaW9uU2Vzc2lvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KG1fZGVjb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vzc2lv
bi0+c3RvcFJlcXVlc3RpbmdNZWRpYURhdGEoKTsKLSAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vz
c2lvbi0+aW52YWxpZGF0ZSgpOwotICAgIH0KLQotICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24g
PSBkZWNvbXByZXNzaW9uU2Vzc2lvbjsKLQotICAgIGlmICghbV9kZWNvbXByZXNzaW9uU2Vzc2lv
bikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgbV9kZWNvbXByZXNzaW9uU2Vz
c2lvbi0+cmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeShbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYg
KHdlYWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPmRpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMod2Vha1RoaXMtPm1fZW5hYmxlZFZpZGVvVHJhY2tJRCk7Ci0gICAgfSk7Ci0gICAgbV9k
ZWNvbXByZXNzaW9uU2Vzc2lvbi0+bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoW3dl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpXSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcyAmJiB3ZWFr
VGhpcy0+bV9tZWRpYVNvdXJjZSkKLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX21lZGlhU291cmNl
LT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSh0cnVlKTsKLSAgICB9KTsKLSAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlUmVl
bnF1ZVNhbXBsZXMoQXRvbWljU3RyaW5nOjpudW1iZXIobV9lbmFibGVkVmlkZW9UcmFja0lEKSk7
Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5E
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkY2MxZDE4NWRhN2VmODMzMDUwODU1MjIyNGU2ZmIxZTFhNTlk
MjMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0KLSNpbmNsdWRlIDxDb3JlTWVkaWEv
Q01UaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+Ci0jaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi10eXBlZGVmIENGVHlwZVJlZiBD
TUJ1ZmZlclJlZjsKLXR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNQnVmZmVyUXVldWUgKkNNQnVmZmVy
UXVldWVSZWY7Ci10eXBlZGVmIHN0cnVjdCBvcGFxdWVDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2Vu
ICpDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuOwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1w
bGVCdWZmZXIgKkNNU2FtcGxlQnVmZmVyUmVmOwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1l
YmFzZSogQ01UaW1lYmFzZVJlZjsKLXR5cGVkZWYgc2lnbmVkIGxvbmcgQ01JdGVtQ291bnQ7Ci10
eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOwotdHlwZWRlZiBzdHJ1
Y3QgX19DVkJ1ZmZlciAqQ1ZJbWFnZUJ1ZmZlclJlZjsKLXR5cGVkZWYgVUludDMyIFZURGVjb2Rl
SW5mb0ZsYWdzOwotdHlwZWRlZiBVSW50MzIgVlREZWNvZGVJbmZvRmxhZ3M7Ci10eXBlZGVmIHN0
cnVjdCBPcGFxdWVWVERlY29tcHJlc3Npb25TZXNzaW9uKiAgVlREZWNvbXByZXNzaW9uU2Vzc2lv
blJlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uKCkpOyB9Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICBib29sIGlz
SW52YWxpZGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ludmFsaWRhdGVkOyB9Ci0KLSAgICB2b2lk
IGVucXVldWVTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYsIGJvb2wgZGlzcGxheWluZyA9IHRydWUp
OwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSBjb25zdDsKLSAgICB2b2lkIHJl
cXVlc3RNZWRpYURhdGFXaGVuUmVhZHkoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKLSAgICB2b2lk
IHN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhKCk7Ci0gICAgdm9pZCBub3RpZnlXaGVuSGFzQXZhaWxh
YmxlVmlkZW9GcmFtZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwotCi0gICAgdm9pZCBzZXRUaW1l
YmFzZShDTVRpbWViYXNlUmVmKTsKLSAgICBDTVRpbWViYXNlUmVmIHRpbWViYXNlKCkgY29uc3Qg
eyByZXR1cm4gbV90aW1lYmFzZS5nZXQoKTsgfQotCi0gICAgZW51bSBJbWFnZUZvclRpbWVGbGFn
cyB7IEV4YWN0VGltZSwgQWxsb3dFYXJsaWVyLCBBbGxvd0xhdGVyIH07Ci0gICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlRm9yVGltZShjb25zdCBNZWRpYVRpbWUmLCBJbWFnZUZv
clRpbWVGbGFncyA9IEV4YWN0VGltZSk7Ci0gICAgdm9pZCBmbHVzaCgpOwotCi1wcml2YXRlOgot
ICAgIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbigpOwotCi0gICAgdm9pZCBkZWNvZGVTYW1w
bGUoQ01TYW1wbGVCdWZmZXJSZWYsIGJvb2wgZGlzcGxheWluZyk7Ci0gICAgdm9pZCBlbnF1ZXVl
RGVjb2RlZFNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiwgYm9vbCBkaXNwbGF5aW5nKTsKLSAgICBX
ZWFrUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9Ci0gICAgdm9pZCBoYW5kbGVEZWNv
bXByZXNzaW9uT3V0cHV0KGJvb2wgZGlzcGxheWluZywgT1NTdGF0dXMsIFZURGVjb2RlSW5mb0Zs
YWdzLCBDVkltYWdlQnVmZmVyUmVmLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRp
bWUgcHJlc2VudGF0aW9uRHVyYXRpb24pOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBnZXRGaXJzdFZpZGVvRnJhbWUoKTsKLSAgICB2b2lkIHJlc2V0QXV0b21hdGljRGVxdWV1ZVRp
bWVyKCk7Ci0gICAgdm9pZCBhdXRvbWF0aWNEZXF1ZXVlKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBk
ZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9pZCogZGVjb21wcmVzc2lvbk91dHB1dFJlZkNv
biwgdm9pZCogc291cmNlRnJhbWVSZWZDb24sIE9TU3RhdHVzLCBWVERlY29kZUluZm9GbGFncywg
Q1ZJbWFnZUJ1ZmZlclJlZiwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lIHBy
ZXNlbnRhdGlvbkR1cmF0aW9uKTsKLSAgICBzdGF0aWMgQ01UaW1lIGdldERlY29kZVRpbWUoQ01C
dWZmZXJSZWYsIHZvaWQqIHJlZmNvbik7Ci0gICAgc3RhdGljIENNVGltZSBnZXRQcmVzZW50YXRp
b25UaW1lKENNQnVmZmVyUmVmLCB2b2lkKiByZWZjb24pOwotICAgIHN0YXRpYyBDTVRpbWUgZ2V0
RHVyYXRpb24oQ01CdWZmZXJSZWYsIHZvaWQqIHJlZmNvbik7Ci0gICAgc3RhdGljIENGQ29tcGFy
aXNvblJlc3VsdCBjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBidWYxLCBDTUJ1ZmZlclJlZiBi
dWYyLCB2b2lkKiByZWZjb24pOwotICAgIHN0YXRpYyB2b2lkIG1heWJlQmVjb21lUmVhZHlGb3JN
b3JlTWVkaWFEYXRhQ2FsbGJhY2sodm9pZCogcmVmY29uLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRv
a2VuKTsKLSAgICB2b2lkIG1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCk7Ci0KLSAg
ICBzdGF0aWMgY29uc3QgQ01JdGVtQ291bnQga01heGltdW1DYXBhY2l0eSA9IDEyMDsKLSAgICBz
dGF0aWMgY29uc3QgQ01JdGVtQ291bnQga0hpZ2hXYXRlck1hcmsgPSA2MDsKLSAgICBzdGF0aWMg
Y29uc3QgQ01JdGVtQ291bnQga0xvd1dhdGVyTWFyayA9IDE1OwotCi0gICAgUmV0YWluUHRyPFZU
RGVjb21wcmVzc2lvblNlc3Npb25SZWY+IG1fZGVjb21wcmVzc2lvblNlc3Npb247Ci0gICAgUmV0
YWluUHRyPENNQnVmZmVyUXVldWVSZWY+IG1fcHJvZHVjZXJRdWV1ZTsKLSAgICBSZXRhaW5QdHI8
Q01CdWZmZXJRdWV1ZVJlZj4gbV9jb25zdW1lclF1ZXVlOwotICAgIFJldGFpblB0cjxDTVRpbWVi
YXNlUmVmPiBtX3RpbWViYXNlOwotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IG1f
ZGVjb21wcmVzc2lvblF1ZXVlOwotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IG1f
ZW5xdWVpbmdRdWV1ZTsKLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gbV9o
YXNBdmFpbGFibGVJbWFnZVNlbWFwaG9yZTsKLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zb3Vy
Y2VfdD4gbV90aW1lclNvdXJjZTsKLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9ub3RpZmlj
YXRpb25DYWxsYmFjazsKLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9oYXNBdmFpbGFibGVG
cmFtZUNhbGxiYWNrOwotICAgIFdlYWtQdHJGYWN0b3J5PFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbj4gbV93ZWFrRmFjdG9yeTsKLSAgICBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuIG1fZGlk
QmVjb21lUmVhZHlUcmlnZ2VyIHsgbnVsbHB0ciB9OwotCi0gICAgYm9vbCBtX2ludmFsaWRhdGVk
IHsgZmFsc2UgfTsKLSAgICBpbnQgbV9mcmFtZXNCZWluZ0RlY29kZWQgeyAwIH07Ci19OwotCi19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmEyZDdmMThlNGM1ODc0ZmJlMzM1NmMxMjg1MTVm
YzA5MzhmZWFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbi5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQzNyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b24uaCIKLQotI2lmIFVTRShWSURFT1RPT0xCT1gpCi0KLSNpbXBvcnQgIkxvZ2dpbmcuaCIKLSNp
bXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgotI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oIgotI2ltcG9ydCA8Q29yZU1lZGlhL0NNQnVmZmVyUXVldWUuaD4KLSNpbXBvcnQg
PENvcmVNZWRpYS9DTUZvcm1hdERlc2NyaXB0aW9uLmg+Ci0jaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgotI2ltcG9ydCA8d3RmL01lZGlhVGltZS5oPgotI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+Ci0jaW1wb3J0IDx3dGYvVmVjdG9yLmg+Ci0KLSNpbXBvcnQgIkNvcmVNZWRpYVNv
ZnRMaW5rLmgiCi0jaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgotI2ltcG9ydCAiVmlkZW9U
b29sYm94U29mdExpbmsuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb246OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbigpCi0gICAgOiBtX2Rl
Y29tcHJlc3Npb25RdWV1ZShhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uIERlY29tcHJlc3Npb24gUXVldWUiLCBESVNQQVRDSF9R
VUVVRV9TRVJJQUwpKSkKLSAgICAsIG1fZW5xdWVpbmdRdWV1ZShhZG9wdE9TT2JqZWN0KGRpc3Bh
dGNoX3F1ZXVlX2NyZWF0ZSgiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uIEVucXVldWVpbmcg
UXVldWUiLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwpKSkKLSAgICAsIG1faGFzQXZhaWxhYmxlSW1h
Z2VTZW1hcGhvcmUoYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKSkK
LSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKLXsKLSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpOwotfQotCi12b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW52YWxp
ZGF0ZSgpCi17Ci0gICAgbV9pbnZhbGlkYXRlZCA9IHRydWU7Ci0gICAgbV9ub3RpZmljYXRpb25D
YWxsYmFjayA9IG51bGxwdHI7Ci0gICAgbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrID0gbnVs
bHB0cjsKLSAgICBzZXRUaW1lYmFzZShudWxscHRyKTsKLSAgICBpZiAobV90aW1lclNvdXJjZSkK
LSAgICAgICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbChtX3RpbWVyU291cmNlLmdldCgpKTsKLX0K
LQotdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnNldFRpbWViYXNlKENNVGltZWJh
c2VSZWYgdGltZWJhc2UpCi17Ci0gICAgaWYgKG1fdGltZWJhc2UgPT0gdGltZWJhc2UpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChtX3RpbWViYXNlKQotICAgICAgICBDTVRpbWViYXNlUmVt
b3ZlVGltZXJEaXNwYXRjaFNvdXJjZShtX3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdl
dCgpKTsKLQotICAgIG1fdGltZWJhc2UgPSB0aW1lYmFzZTsKLQotICAgIGlmIChtX3RpbWViYXNl
KSB7Ci0gICAgICAgIGlmICghbV90aW1lclNvdXJjZSkgewotICAgICAgICAgICAgbV90aW1lclNv
dXJjZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VS
Q0VfVFlQRV9USU1FUiwgMCwgMCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSkpOwotICAgICAg
ICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVyKG1fdGltZXJTb3VyY2UuZ2V0
KCksIFt0aGlzXSB7Ci0gICAgICAgICAgICAgICAgYXV0b21hdGljRGVxdWV1ZSgpOwotICAgICAg
ICAgICAgfSk7Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEyMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkKLSAgICAgICAgICAgIGRpc3BhdGNoX2FjdGl2YXRl
KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotI2VuZGlmCi0gICAgICAgIH0KLSAgICAgICAgQ01UaW1l
YmFzZUFkZFRpbWVyRGlzcGF0Y2hTb3VyY2UobV90aW1lYmFzZS5nZXQoKSwgbV90aW1lclNvdXJj
ZS5nZXQoKSk7Ci0gICAgfQotfQotCi12b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6
bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGFDYWxsYmFjayh2b2lkKiByZWZjb24sIENN
QnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCi17Ci0gICAgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uKiBzZXNzaW9uID0gc3RhdGljX2Nhc3Q8V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uKj4o
cmVmY29uKTsKLSAgICBzZXNzaW9uLT5tYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgp
OwotfQotCi12b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFk
eUZvck1vcmVNZWRpYURhdGEoKQotewotICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbjo6bWF5YmVCZWNvbWVSZWFkeUZvck1vcmVNZWRpYURhdGEoJXApIC0gaXNSZWFk
eUZvck1vcmVNZWRpYURhdGEoJWQpLCBoYXNDYWxsYmFjayglZCkiLCB0aGlzLCBpc1JlYWR5Rm9y
TW9yZU1lZGlhRGF0YSgpLCAhIW1fbm90aWZpY2F0aW9uQ2FsbGJhY2spOwotICAgIGlmICghaXNS
ZWFkeUZvck1vcmVNZWRpYURhdGEoKSB8fCAhbV9ub3RpZmljYXRpb25DYWxsYmFjaykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIG1fbm90aWZp
Y2F0aW9uQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlZlB0cjxX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24+IHN0cm9uZ1RoaXMgeyB0aGlzIH07Ci0gICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3N0cm9uZ1RoaXNdIHsKLSAg
ICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fbm90aWZpY2F0aW9uQ2FsbGJhY2spCi0gICAgICAgICAg
ICBzdHJvbmdUaGlzLT5tX25vdGlmaWNhdGlvbkNhbGxiYWNrKCk7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnF1ZXVlU2FtcGxlKENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBkaXNwbGF5aW5nKQotewotICAgIENNSXRlbUNvdW50
IGl0ZW1Db3VudCA9IDA7Ci0gICAgaWYgKG5vRXJyICE9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5KHNhbXBsZUJ1ZmZlciwgMCwgbnVsbHB0ciwgJml0ZW1Db3VudCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWluZ0lu
Zm9BcnJheTsKLSAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwotICAgIGlmIChu
b0VyciAhPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShzYW1wbGVCdWZm
ZXIsIGl0ZW1Db3VudCwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgbnVsbHB0cikpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmICghbV9kZWNvbXByZXNzaW9uUXVldWUpCi0gICAgICAgIG1fZGVj
b21wcmVzc2lvblF1ZXVlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDIERlY29tcHJlc3Npb24gUXVldWUiLCBESVNQQVRDSF9R
VUVVRV9TRVJJQUwpKTsKLQotICAgIGlmICghbV9wcm9kdWNlclF1ZXVlKSB7Ci0gICAgICAgIENN
QnVmZmVyUXVldWVSZWYgb3V0UXVldWUgeyBudWxscHRyIH07Ci0gICAgICAgIENNQnVmZmVyQ2Fs
bGJhY2tzIGNhbGxiYWNrcyB7Ci0gICAgICAgICAgICAwLAotICAgICAgICAgICAgbnVsbHB0ciwK
LSAgICAgICAgICAgICZnZXREZWNvZGVUaW1lLAotICAgICAgICAgICAgJmdldFByZXNlbnRhdGlv
blRpbWUsCi0gICAgICAgICAgICAmZ2V0RHVyYXRpb24sCi0gICAgICAgICAgICBudWxscHRyLAot
ICAgICAgICAgICAgJmNvbXBhcmVCdWZmZXJzLAotICAgICAgICAgICAgbnVsbHB0ciwKLSAgICAg
ICAgICAgIG51bGxwdHIsCi0gICAgICAgIH07Ci0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcywgJm91dFF1
ZXVlKTsKLSAgICAgICAgbV9wcm9kdWNlclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7Ci0KLSAg
ICAgICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQobV9w
cm9kdWNlclF1ZXVlLmdldCgpLCBtYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YUNhbGxi
YWNrLCB0aGlzLCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkJ1ZmZlckNvdW50QmVjb21lc0xl
c3NUaGFuLCBrTG93V2F0ZXJNYXJrLCAmbV9kaWRCZWNvbWVSZWFkeVRyaWdnZXIpOwotICAgIH0K
LQotICAgIGlmICghbV9jb25zdW1lclF1ZXVlKSB7Ci0gICAgICAgIENNQnVmZmVyUXVldWVSZWYg
b3V0UXVldWUgeyBudWxscHRyIH07Ci0gICAgICAgIENNQnVmZmVyQ2FsbGJhY2tzIGNhbGxiYWNr
cyB7Ci0gICAgICAgICAgICAwLAotICAgICAgICAgICAgbnVsbHB0ciwKLSAgICAgICAgICAgICZn
ZXREZWNvZGVUaW1lLAotICAgICAgICAgICAgJmdldFByZXNlbnRhdGlvblRpbWUsCi0gICAgICAg
ICAgICAmZ2V0RHVyYXRpb24sCi0gICAgICAgICAgICBudWxscHRyLAotICAgICAgICAgICAgJmNv
bXBhcmVCdWZmZXJzLAotICAgICAgICAgICAgbnVsbHB0ciwKLSAgICAgICAgICAgIG51bGxwdHIs
Ci0gICAgICAgIH07Ci0gICAgICAgIENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwga01heGltdW1DYXBhY2l0eSwgJmNhbGxiYWNrcywgJm91dFF1ZXVlKTsKLSAgICAgICAg
bV9jb25zdW1lclF1ZXVlID0gYWRvcHRDRihvdXRRdWV1ZSk7Ci0gICAgfQotCi0gICAgKyttX2Zy
YW1lc0JlaW5nRGVjb2RlZDsKLQotICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbjo6ZW5xdWV1ZVNhbXBsZSglcCkgLSBmcmFtZXNCZWluZ0RlY29kZWQoJWQpIiwgdGhp
cywgbV9mcmFtZXNCZWluZ0RlY29kZWQpOwotCi0gICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbj4gc3Ryb25nVGhpcyB7IHRoaXMgfTsKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IHN0cm9uZ0J1ZmZlciB7IHNhbXBsZUJ1ZmZlciB9OwotICAgIGRpc3BhdGNoX2Fz
eW5jKG1fZGVjb21wcmVzc2lvblF1ZXVlLmdldCgpLCBbc3Ryb25nVGhpcywgc3Ryb25nQnVmZmVy
LCBkaXNwbGF5aW5nXSB7Ci0gICAgICAgIHN0cm9uZ1RoaXMtPmRlY29kZVNhbXBsZShzdHJvbmdC
dWZmZXIuZ2V0KCksIGRpc3BsYXlpbmcpOwotICAgIH0pOwotfQotCi12b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZGVjb2RlU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwg
Ym9vbCBkaXNwbGF5aW5nKQotewotICAgIGlmIChpc0ludmFsaWRhdGVkKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Zvcm1hdERlc2Ny
aXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGUpOwotICAg
IGlmIChtX2RlY29tcHJlc3Npb25TZXNzaW9uICYmICFWVERlY29tcHJlc3Npb25TZXNzaW9uQ2Fu
QWNjZXB0Rm9ybWF0RGVzY3JpcHRpb24obV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSwgdmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbikpIHsKLSAgICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldh
aXRGb3JBc3luY2hyb25vdXNGcmFtZXMobV9kZWNvbXByZXNzaW9uU2Vzc2lvbi5nZXQoKSk7Ci0g
ICAgICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOwotICAgIH0KLQotICAgIGlm
ICghbV9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewotICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgdmlkZW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oc2FtcGxlKTsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB2aWRlb0RlY29kZXJT
cGVjaWZpY2F0aW9uID0gQHsgKE5TU3RyaW5nICopa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlv
bl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyOiBAWUVTIH07Ci0jaWYgUExB
VEZPUk0oSU9TKQotICAgICAgICBOU0RpY3Rpb25hcnkqIGF0dHJpYnV0ZXMgPSBAeyhOU1N0cmlu
ZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlT3BlbkdMRVNGQk9Db21wYXRpYmlsaXR5S2V5OiBA
WUVTfTsKLSNlbHNlCi0gICAgICAgIE5TRGljdGlvbmFyeSogYXR0cmlidXRlcyA9IEB7KE5TU3Ry
aW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VPcGVuR0xGQk9Db21wYXRpYmlsaXR5S2V5OiBA
WUVTfTsKLSNlbmRpZgotICAgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIGRlY29tcHJl
c3Npb25TZXNzaW9uT3V0ID0gbnVsbHB0cjsKLSAgICAgICAgVlREZWNvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2tSZWNvcmQgY2FsbGJhY2sgewotICAgICAgICAgICAgJmRlY29tcHJlc3Npb25PdXRw
dXRDYWxsYmFjaywKLSAgICAgICAgICAgIHRoaXMsCi0gICAgICAgIH07Ci0gICAgICAgIGlmIChu
b0VyciA9PSBWVERlY29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHZpZGVvRm9ybWF0RGVzY3JpcHRpb24sIChDRkRpY3Rpb25hcnlSZWYpdmlkZW9EZWNvZGVyU3Bl
Y2lmaWNhdGlvbiwgKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzLCAmY2FsbGJhY2ssICZkZWNv
bXByZXNzaW9uU2Vzc2lvbk91dCkpCi0gICAgICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9u
ID0gYWRvcHRDRihkZWNvbXByZXNzaW9uU2Vzc2lvbk91dCk7Ci0gICAgfQotCi0gICAgVlREZWNv
ZGVJbmZvRmxhZ3MgZmxhZ3MgeyAwIH07Ci0gICAgaWYgKCFkaXNwbGF5aW5nKQotICAgICAgICBm
bGFncyB8PSBrVlREZWNvZGVGcmFtZV9Eb05vdE91dHB1dEZyYW1lOwotCi0gICAgVlREZWNvbXBy
ZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKG1fZGVjb21wcmVzc2lvblNlc3Npb24uZ2V0KCksIHNh
bXBsZSwgMCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGlzcGxheWluZyksICZmbGFncyk7Ci19
Ci0KLXZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpkZWNvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2sodm9pZCogZGVjb21wcmVzc2lvbk91dHB1dFJlZkNvbiwgdm9pZCogc291cmNlRnJh
bWVSZWZDb24sIE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1w
LCBDTVRpbWUgcHJlc2VudGF0aW9uRHVyYXRpb24pCi17Ci0gICAgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uKiBzZXNzaW9uID0gc3RhdGljX2Nhc3Q8V2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uKj4oZGVjb21wcmVzc2lvbk91dHB1dFJlZkNvbik7Ci0gICAgYm9vbCBkaXNwbGF5aW5nID0g
c291cmNlRnJhbWVSZWZDb247Ci0gICAgc2Vzc2lvbi0+aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1
dChkaXNwbGF5aW5nLCBzdGF0dXMsIGluZm9GbGFncywgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlv
blRpbWVTdGFtcCwgcHJlc2VudGF0aW9uRHVyYXRpb24pOwotfQotCi12b2lkIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6aGFuZGxlRGVjb21wcmVzc2lvbk91dHB1dChib29sIGRpc3BsYXlp
bmcsIE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBDVkltYWdl
QnVmZmVyUmVmIHJhd0ltYWdlQnVmZmVyLCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBD
TVRpbWUgcHJlc2VudGF0aW9uRHVyYXRpb24pCi17Ci0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIHJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24gPSBudWxscHRyOwotICAgIGlmIChub0Vy
ciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgJnJhd0ltYWdlQnVmZmVyRGVzY3JpcHRpb24p
KQotICAgICAgICByZXR1cm47Ci0gICAgUmV0YWluUHRyPENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZj4gaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbiA9IGFkb3B0Q0YocmF3SW1hZ2VCdWZmZXJEZXNj
cmlwdGlvbik7Ci0KLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gaW1hZ2VCdWZmZXJUaW1pbmcgewot
ICAgICAgICBwcmVzZW50YXRpb25EdXJhdGlvbiwKLSAgICAgICAgcHJlc2VudGF0aW9uVGltZVN0
YW1wLAotICAgICAgICBwcmVzZW50YXRpb25UaW1lU3RhbXAsCi0gICAgfTsKLQotICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHJhd0ltYWdlU2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBpZiAobm9F
cnIgIT0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCByYXdJbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJEZXNjcmlwdGlvbi5nZXQoKSwg
JmltYWdlQnVmZmVyVGltaW5nLCAmcmF3SW1hZ2VTYW1wbGVCdWZmZXIpKQotICAgICAgICByZXR1
cm47Ci0gICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbj4gc3Ryb25nVGhpcyB7
IHRoaXMgfTsKLSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGltYWdlU2FtcGxlQnVm
ZmVyID0gYWRvcHRDRihyYXdJbWFnZVNhbXBsZUJ1ZmZlcik7Ci0gICAgZGlzcGF0Y2hfYXN5bmMo
bV9lbnF1ZWluZ1F1ZXVlLmdldCgpLCBbc3Ryb25nVGhpcywgc3RhdHVzLCBpbWFnZVNhbXBsZUJ1
ZmZlciwgaW5mb0ZsYWdzLCBkaXNwbGF5aW5nXSB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShpbmZv
RmxhZ3MpOwotICAgICAgICBzdHJvbmdUaGlzLT5lbnF1ZXVlRGVjb2RlZFNhbXBsZShpbWFnZVNh
bXBsZUJ1ZmZlci5nZXQoKSwgZGlzcGxheWluZyk7Ci0gICAgfSk7Ci19Ci0KLVJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmdldEZpcnN0Vmlk
ZW9GcmFtZSgpCi17Ci0gICAgaWYgKCFtX3Byb2R1Y2VyUXVldWUgfHwgQ01CdWZmZXJRdWV1ZUlz
RW1wdHkobV9wcm9kdWNlclF1ZXVlLmdldCgpKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGN1cnJlbnRTYW1wbGUgPSBhZG9wdENG
KChDTVNhbXBsZUJ1ZmZlclJlZilDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX3Byb2R1
Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VC
dWZmZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1
cnJlbnRTYW1wbGUuZ2V0KCkpOwotICAgIEFTU0VSVChDRkdldFR5cGVJRChpbWFnZUJ1ZmZlci5n
ZXQoKSkgPT0gQ1ZQaXhlbEJ1ZmZlckdldFR5cGVJRCgpKTsKLSAgICByZXR1cm4gaW1hZ2VCdWZm
ZXI7Ci19Ci0KLXZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1
ZXVlKCkKLXsKLSAgICBpZiAoIW1fdGltZWJhc2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1
dG8gdGltZSA9IHRvTWVkaWFUaW1lKENNVGltZWJhc2VHZXRUaW1lKG1fdGltZWJhc2UuZ2V0KCkp
KTsKLSAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmF1dG9tYXRp
Y0RlcXVldWUoJXApIC0gcHVyZ2luZyBhbGwgc2FtcGxlcyBiZWZvcmUgdGltZSglcykiLCB0aGlz
LCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKLQotICAgIHdoaWxlIChDTVNhbXBsZUJ1
ZmZlclJlZiBmaXJzdFNhbXBsZSA9IChDTVNhbXBsZUJ1ZmZlclJlZilDTUJ1ZmZlclF1ZXVlR2V0
SGVhZChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7Ci0gICAgICAgIE1lZGlhVGltZSBwcmVzZW50
YXRpb25UaW1lc3RhbXAgPSB0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlv
blRpbWVTdGFtcChmaXJzdFNhbXBsZSkpOwotICAgICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSB0
b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGZpcnN0U2FtcGxlKSk7Ci0gICAg
ICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPSBwcmVzZW50YXRpb25UaW1l
c3RhbXAgKyBkdXJhdGlvbjsKLSAgICAgICAgaWYgKHRpbWUgPiBwcmVzZW50YXRpb25FbmRUaW1l
c3RhbXApIHsKLSAgICAgICAgICAgIENGUmVsZWFzZShDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJl
dGFpbihtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB9Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIGF1dG8gYmVnaW4gPSB0b01lZGlh
VGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNl
clF1ZXVlLmdldCgpKSk7Ci0gICAgICAgIGF1dG8gZW5kID0gdG9NZWRpYVRpbWUoQ01CdWZmZXJR
dWV1ZUdldEVuZFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKTsK
LSAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0
aWNEZXF1ZXVlKCVwKSAtIHF1ZXVlKCVzIC0+ICVzKSIsIHRoaXMsIHRvU3RyaW5nKGJlZ2luKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwotI2VuZGlmCi0gICAg
ICAgIENNVGltZWJhc2VTZXRUaW1lckRpc3BhdGNoU291cmNlTmV4dEZpcmVUaW1lKG1fdGltZWJh
c2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCksIHRvQ01UaW1lKHByZXNlbnRhdGlvbkVuZFRp
bWVzdGFtcCksIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTE9HKE1lZGlhLCAi
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjphdXRvbWF0aWNEZXF1ZXVlKCVwKSAtIHF1ZXVl
IGVtcHR5IiwgdGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7Ci0gICAgQ01UaW1l
YmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VOZXh0RmlyZVRpbWUobV90aW1lYmFzZS5nZXQoKSwg
bV90aW1lclNvdXJjZS5nZXQoKSwga0NNVGltZVBvc2l0aXZlSW5maW5pdHksIDApOwotfQotCi12
b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBib29sIGRpc3BsYXlpbmcpCi17Ci0gICAgaWYgKGlzSW52
YWxpZGF0ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLS1tX2ZyYW1lc0JlaW5nRGVjb2Rl
ZDsKLQotICAgIGlmICghZGlzcGxheWluZykgewotICAgICAgICBtYXliZUJlY29tZVJlYWR5Rm9y
TW9yZU1lZGlhRGF0YSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQ01CdWZmZXJR
dWV1ZUVucXVldWUobV9wcm9kdWNlclF1ZXVlLmdldCgpLCBzYW1wbGUpOwotCi0jaWYgIUxPR19E
SVNBQkxFRAotICAgIGF1dG8gYmVnaW4gPSB0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmly
c3RQcmVzZW50YXRpb25UaW1lU3RhbXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgYXV0
byBlbmQgPSB0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0
YW1wKG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkpOwotICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbjo6ZW5xdWV1ZURlY29kZWRTYW1wbGUoJXApIC0gZnJhbWVzQmVpbmdE
ZWNvZGVkKCVkKSwgcHJvZHVjZXJRdWV1ZSglcyAtPiAlcykiLCB0aGlzLCBtX2ZyYW1lc0JlaW5n
RGVjb2RlZCwgdG9TdHJpbmcoYmVnaW4pLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRm
OCgpLmRhdGEoKSk7Ci0jZW5kaWYKLQotCi0gICAgaWYgKG1faGFzQXZhaWxhYmxlRnJhbWVDYWxs
YmFjaykgewotICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2sgeyBtX2hhc0F2
YWlsYWJsZUZyYW1lQ2FsbGJhY2sgfTsKLSAgICAgICAgbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxi
YWNrID0gbnVsbHB0cjsKLSAgICAgICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bj4gc3Ryb25nVGhpcyB7IHRoaXMgfTsKLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3N0cm9uZ1RoaXMsIGNhbGxiYWNrXSB7Ci0gICAgICAgICAgICBj
YWxsYmFjaygpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpZiAobV90aW1lYmFzZSkKLSAg
ICAgICAgQ01UaW1lYmFzZVNldFRpbWVyRGlzcGF0Y2hTb3VyY2VUb0ZpcmVJbW1lZGlhdGVseSht
X3RpbWViYXNlLmdldCgpLCBtX3RpbWVyU291cmNlLmdldCgpKTsKLX0KLQotYm9vbCBXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb246OmlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCkgY29uc3QKLXsK
LSAgICBDTUl0ZW1Db3VudCBwcm9kdWNlckNvdW50ID0gbV9wcm9kdWNlclF1ZXVlID8gQ01CdWZm
ZXJRdWV1ZUdldEJ1ZmZlckNvdW50KG1fcHJvZHVjZXJRdWV1ZS5nZXQoKSkgOiAwOwotICAgIHJl
dHVybiBtX2ZyYW1lc0JlaW5nRGVjb2RlZCArIHByb2R1Y2VyQ291bnQgPD0ga0hpZ2hXYXRlck1h
cms7Ci19Ci0KLXZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpyZXF1ZXN0TWVkaWFE
YXRhV2hlblJlYWR5KHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBub3RpZmljYXRpb25DYWxsYmFjaykK
LXsKLSAgICBMT0coTWVkaWEsICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OnJlcXVlc3RN
ZWRpYURhdGFXaGVuUmVhZHkoJXApLCBoYXNOb3RpZmljYXRpb25DYWxsYmFjayglZCkiLCB0aGlz
LCAhIW5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKLSAgICBtX25vdGlmaWNhdGlvbkNhbGxiYWNrID0g
bm90aWZpY2F0aW9uQ2FsbGJhY2s7Ci0KLSAgICBpZiAobm90aWZpY2F0aW9uQ2FsbGJhY2sgJiYg
aXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSkgewotICAgICAgICBSZWZQdHI8V2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uPiBzdHJvbmdUaGlzIHsgdGhpcyB9OwotICAgICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbc3Ryb25nVGhpc10gewotICAgICAgICAg
ICAgaWYgKHN0cm9uZ1RoaXMtPm1fbm90aWZpY2F0aW9uQ2FsbGJhY2spCi0gICAgICAgICAgICAg
ICAgc3Ryb25nVGhpcy0+bV9ub3RpZmljYXRpb25DYWxsYmFjaygpOwotICAgICAgICB9KTsKLSAg
ICB9Ci19Ci0KLXZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpzdG9wUmVxdWVzdGlu
Z01lZGlhRGF0YSgpCi17Ci0gICAgTE9HKE1lZGlhLCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpzdG9wUmVxdWVzdGluZ01lZGlhRGF0YSglcCkiLCB0aGlzKTsKLSAgICBtX25vdGlmaWNh
dGlvbkNhbGxiYWNrID0gbnVsbHB0cjsKLX0KLQotdm9pZCBXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb246Om5vdGlmeVdoZW5IYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBjYWxsYmFjaykKLXsKLSAgICBpZiAoY2FsbGJhY2sgJiYgbV9wcm9kdWNlclF1ZXVlICYm
ICFDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkpKSB7Ci0gICAgICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtjYWxsYmFja10gewot
ICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrID0gY2FsbGJhY2s7Ci19Ci0KLVJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Omlt
YWdlRm9yVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIEltYWdlRm9yVGltZUZsYWdzIGZsYWdz
KQotewotICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX3Byb2R1Y2VyUXVldWUuZ2V0KCkp
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1h
Z2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpLCBxdWV1ZSBlbXB0eSIsIHRoaXMsIHRvU3RyaW5nKHRp
bWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBib29sIGFsbG93RWFybGllciA9IGZsYWdzID09IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6QWxsb3dFYXJsaWVyOwotICAgIGJvb2wgYWxsb3dMYXRlciA9IGZsYWdzID09IFdlYkNvcmVE
ZWNvbXByZXNzaW9uU2Vzc2lvbjo6QWxsb3dMYXRlcjsKLQotICAgIE1lZGlhVGltZSBzdGFydFRp
bWUgPSB0b01lZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3Rh
bXAobV9wcm9kdWNlclF1ZXVlLmdldCgpKSk7Ci0gICAgTWVkaWFUaW1lIGVuZFRpbWUgPSB0b01l
ZGlhVGltZShDTUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wKG1fcHJvZHVj
ZXJRdWV1ZS5nZXQoKSkpOwotICAgIGlmICghYWxsb3dMYXRlciAmJiB0aW1lIDwgc3RhcnRUaW1l
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1h
Z2VGb3JUaW1lKCVwKSAtIHRpbWUoJXMpIHRvbyBlYXJseSBmb3IgcXVldWUoJXMgLT4gJXMpIiwg
dGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnRUaW1lKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgd2hpbGUgKENNU2FtcGxlQnVmZmVyUmVmIGZp
cnN0U2FtcGxlID0gKENNU2FtcGxlQnVmZmVyUmVmKUNNQnVmZmVyUXVldWVHZXRIZWFkKG1fcHJv
ZHVjZXJRdWV1ZS5nZXQoKSkpIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWVz
dGFtcCA9IHRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1w
KGZpcnN0U2FtcGxlKSk7Ci0gICAgICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IHRvTWVkaWFUaW1l
KENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24oZmlyc3RTYW1wbGUpKTsKLSAgICAgICAgTWVkaWFU
aW1lIHByZXNlbnRhdGlvbkVuZFRpbWVzdGFtcCA9IHByZXNlbnRhdGlvblRpbWVzdGFtcCArIGR1
cmF0aW9uOwotICAgICAgICBpZiAoIWFsbG93TGF0ZXIgJiYgcHJlc2VudGF0aW9uVGltZXN0YW1w
ID4gdGltZSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpZiAoIWFsbG93
RWFybGllciAmJiBwcmVzZW50YXRpb25FbmRUaW1lc3RhbXAgPCB0aW1lKSB7Ci0gICAgICAgICAg
ICBDRlJlbGVhc2UoQ01CdWZmZXJRdWV1ZURlcXVldWVBbmRSZXRhaW4obV9wcm9kdWNlclF1ZXVl
LmdldCgpKSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3VycmVudFNhbXBsZSA9IGFkb3B0Q0YoKENNU2Ft
cGxlQnVmZmVyUmVmKUNNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fcHJvZHVjZXJRdWV1
ZS5nZXQoKSkpOwotICAgICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gaW1hZ2VCdWZm
ZXIgPSAoQ1ZQaXhlbEJ1ZmZlclJlZilDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGN1cnJl
bnRTYW1wbGUuZ2V0KCkpOwotICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQoaW1hZ2VCdWZmZXIu
Z2V0KCkpID09IENWUGl4ZWxCdWZmZXJHZXRUeXBlSUQoKSk7Ci0KLSAgICAgICAgaWYgKG1fdGlt
ZWJhc2UpCi0gICAgICAgICAgICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmly
ZUltbWVkaWF0ZWx5KG1fdGltZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotCi0g
ICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6aW1hZ2VGb3JU
aW1lKCVwKSAtIGZvdW5kIHNhbXBsZSBmb3IgdGltZSglcykgaW4gcXVldWUoJXMgLT4gJXMpIiwg
dGhpcywgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnRUaW1lKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1lKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
cmV0dXJuIGltYWdlQnVmZmVyOwotICAgIH0KLQotICAgIGlmIChtX3RpbWViYXNlKQotICAgICAg
ICBDTVRpbWViYXNlU2V0VGltZXJEaXNwYXRjaFNvdXJjZVRvRmlyZUltbWVkaWF0ZWx5KG1fdGlt
ZWJhc2UuZ2V0KCksIG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotCi0gICAgTE9HKE1lZGlhLCAiV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uOjppbWFnZUZvclRpbWUoJXApIC0gbm8gbWF0Y2hpbmcg
c2FtcGxlIGZvciB0aW1lKCVzKSBpbiBxdWV1ZSglcyAtPiAlcykiLCB0aGlzLCB0b1N0cmluZyh0
aW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhzdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRv
U3RyaW5nKGVuZFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBudWxscHRyOwotfQot
Ci12b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6Zmx1c2goKQotewotICAgIGRpc3Bh
dGNoX3N5bmMobV9kZWNvbXByZXNzaW9uUXVldWUuZ2V0KCksIFtzdHJvbmdUaGlzID0gUmVmUHRy
PFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbj4odGhpcyldIHsKLSAgICAgICAgQ01CdWZmZXJR
dWV1ZVJlc2V0KHN0cm9uZ1RoaXMtPm1fcHJvZHVjZXJRdWV1ZS5nZXQoKSk7Ci0gICAgICAgIGRp
c3BhdGNoX3N5bmMoc3Ryb25nVGhpcy0+bV9lbnF1ZWluZ1F1ZXVlLmdldCgpLCBbc3Ryb25nVGhp
c10gewotICAgICAgICAgICAgQ01CdWZmZXJRdWV1ZVJlc2V0KHN0cm9uZ1RoaXMtPm1fY29uc3Vt
ZXJRdWV1ZS5nZXQoKSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi1DTVRpbWUgV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREZWNvZGVUaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9p
ZCopCi17Ci0gICAgQVNTRVJUKENGR2V0VHlwZUlEKGJ1ZikgPT0gQ01TYW1wbGVCdWZmZXJHZXRU
eXBlSUQoKSk7Ci0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlID0gKENNU2FtcGxlQnVmZmVy
UmVmKShidWYpOwotICAgIHJldHVybiBDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcChz
YW1wbGUpOwotfQotCi1DTVRpbWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXRQcmVz
ZW50YXRpb25UaW1lKENNQnVmZmVyUmVmIGJ1Ziwgdm9pZCopCi17Ci0gICAgQVNTRVJUKENGR2V0
VHlwZUlEKGJ1ZikgPT0gQ01TYW1wbGVCdWZmZXJHZXRUeXBlSUQoKSk7Ci0gICAgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlID0gKENNU2FtcGxlQnVmZmVyUmVmKShidWYpOwotICAgIHJldHVybiBD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGUpOwotfQotCi1DTVRp
bWUgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpnZXREdXJhdGlvbihDTUJ1ZmZlclJlZiBi
dWYsIHZvaWQqKQotewotICAgIEFTU0VSVChDRkdldFR5cGVJRChidWYpID09IENNU2FtcGxlQnVm
ZmVyR2V0VHlwZUlEKCkpOwotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSA9IChDTVNhbXBs
ZUJ1ZmZlclJlZikoYnVmKTsKLSAgICByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihz
YW1wbGUpOwotfQotCi1DRkNvbXBhcmlzb25SZXN1bHQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjpjb21wYXJlQnVmZmVycyhDTUJ1ZmZlclJlZiBidWYxLCBDTUJ1ZmZlclJlZiBidWYyLCB2
b2lkKiByZWZjb24pCi17Ci0gICAgcmV0dXJuIChDRkNvbXBhcmlzb25SZXN1bHQpQ01UaW1lQ29t
cGFyZShnZXRQcmVzZW50YXRpb25UaW1lKGJ1ZjEsIHJlZmNvbiksIGdldFByZXNlbnRhdGlvblRp
bWUoYnVmMiwgcmVmY29uKSk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmM5ODk3ZDU5NTFj
NzEwODlhOGQ5OGQyMzU3YThmNzA4NmVkMTAxZC4uMWFiNzRiNzBkZTQzMTdjMWM0NTI2NzE3YjU4
MWRjOWVmZWE5NDEzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA1LTE5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjE3MDk4LCByMjE3MTExLCByMjE3MTEzLCBhbmQKKyAgICAgICAgcjIxNzEx
NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjM2
NworCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYnJva2UgdGhlIFdpbmRvd3MgYnVpbGQgYW5kIGlu
dHJvZHVjZWQKKyAgICAgICAgTGF5b3V0VGVzdCBmYWlsdXJlcyAoUmVxdWVzdGVkIGJ5IHJ5YW5o
YWRkYWQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAg
ICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRvIGNh
bnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcwOTgKKwor
ICAgICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRv
IGNhbnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcxMTEK
KworICAgICAgICAiVW5yZXZpZXdlZCBidWlsZCBmaXg7IGFkZCB1bmRlZmluZWQgZnVuY3Rpb25z
IGFuZCBjb25zdGFudHMKKyAgICAgICAgdG8gdGhlIENvcmVNZWRpYVNvZnRMaW5rLmgsIGFuZCB1
c2UgdGhlIgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcxMTMK
KworICAgICAgICAiW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50
IHRvIGNhbnZhcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNTE1NworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTcx
MTQKKwogMjAxNy0wNS0xOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIxNzA3OCk6IHdpbmRvdy5BcHBsZVBheVNlc3Npb24gaXMgdW5kZWZp
bmVkIG9uIG1hY09TIFNpZXJyYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL2NvbnRlbnQvdGVzdC1mcmFnbWVudGVkLm1wNCBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9jb250ZW50L3Rlc3QtZnJhZ21lbnRlZC5tcDQKaW5kZXggNTIwYWFiMTQ5NGVm
NjUwMWNjNzg1MWVmNDRiODgwMzY2ZjJkNDE2NS4uNmNlNDY3YmQyNGUxOWE5ZjU4OWFlMjFkMWE5
NDkwOTA3MTI2YzE2NSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA3MTgKemNtWWsyUGU+
YTw2bz09e3t4UCEmeCpucD9BX1N6RTJ5UUd3OH13bz9MTjd1K0RHYEZMNzdlNkQ0PFokQCg4R3tg
CnoqcyNiRk5eZT9fUD1iaWUjYXUqbDVgdntZXndgcGk7R3IhVlNQJHdYNTBgbkQ4TlQ7Xkd2Q1pY
SWF3K3ZLbFZZbgp6Nys8M0IhfklNajdOPjBZRklkSD8tbzQ5SiojQVUjQXYmMmBvPzlWPSp0eG0r
Uy1IeVV2KSQrVlBnV3NCaXhLaU4Kej1LWUk2bTsyMXtxNEh0RzZlQXtsSFFgTDBOMXordmo2KnZK
WHM2I0V1dFE4Tm1zJHokZjFMVm8kUylGOVRxTHhACnpXMHR9R24qOzFgcjhPVGlkfjtlOG82fng5
Zk5meFpeLTs0UV5eV3JUSEVpJXxLXk43NkYpPlZRelVWd0x4PEdEdAp6cUdwSWgmOCNMXzlhQyVG
bjk+e09IUHJjUyF4WG9UdyY8dnB5MXt8UC0jOVN6SDAwQ040Uj14QDtpVEJGTDdKODQKekUtLW0r
KjdxZHM7YlUxUSM8RXViRndCVT5aQSg2TGhVYSVJaz4zZT4mVXpnSFN8M0htPF5SWm4kWDArI2gt
bXpNCnpmY194VCghS1d4bDhFJkRpdllidFdFQHVtYmJgcGRhXzxxZlZgUEJIM096WHJTUV5MSmUy
fURINUx3JGotcyQmbgp6em9KfW1uc0hTYih1ZnBnK0o7Q2BydSZFI1dpNWs5UVAjdFY2bEdtRldW
Q3N1cUhNZ3ZGLTYoektxUXMlVlJyOEkKTCglV1dFJHt5YlYyKHkrKQoKZGVsdGEgNzU0CnpjbVlr
MkYtUkx4Nz1Zalo/JWtRWTcpQClWVT9+WXlYY1chMGk+UW07K1I0RjlQQUlmWlhfSD4xUUtVNDQ0
dXV9Ywp6UDslVUcxaUE9WDVEXj5Iek51UkBMbnRgM3BpOEgyTEZpQzEmRDU5dEBweH4hPEt6Rm9f
dVctPyUpPWVDZDxXYG8KekdEaihSdWp4JjlEZUM8SiEoRjt2e2hObkRHTVJxNXduXypZT1RTIVEx
R2dHdU5gazxDbWhPVzMmfFhpIUB1dHxCCnotWEtJXkA7S3FVTUhjaE0pSFhFVSQyQV87VXtgfjR7
PUZZWUFiZF47NkRyNzE7JDJnM0lMWktVV3E9LXg+WmlFQgp6VWdfQHBLYTtjI3JfUllaPHRPN3g9
Xm9ee1dodWd0Py1eRlFoOVJmQ3RubChPWWZadjdGQmFKZHpfem5kVnRre2QKekYzdVZDNzswWmxi
aE58JSgyPzRyXl9VWW1SKGElRGAoe0Z1SCFke2NaVDdxJChmaT8yYCtDe2VueTBnKXlnZU5uCnoy
Snp4WUdXc3BZb0MkR3JNejdzOXZPUmdCaDBXSnI9PktSfCRUSz5SV1ErJU1kSTR8RyNjPzNGWHwk
bz4qam9tLQp6eDU5cXZUQHdKcj8rfEFwKFMxT0ZIOSE/YUgyRW4melkhX2N7MXBOZDVpOG1PZFcl
U3tvZHhJIWsjQDBuZz1qUUUKenJpZUo5PjBiZX1hNz0kNVl8X3QmakxsajklYThEY2wpUlZmdFA/
MzJFSlJXPT9MI0NiKHx0cnp2aG9PI2wrNDEyCmpxLTRmWjxiTE4kRE9yN2pWXlhwPGgpNSpraGVo
cFl4c31lSWheX3F4JFJMKDsKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLXBhaW50LXRvLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXBhaW50LXRvLWNhbnZhcy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxZmI4MzNiMGQ4ZWM3MGNl
OTc3NmMzYjQwN2Y4ZTkwOWNjY2ExNDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1wYWludC10by1jYW52YXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs
MCBAQAotRVZFTlQoc291cmNlb3BlbikKLUVWRU5UKHVwZGF0ZSkKLUVWRU5UKGNhbnBsYXkpCi1F
WFBFQ1RFRCAoY2FudmFzLmdldENvbnRleHQoIjJkIikuZ2V0SW1hZ2VEYXRhKDI1MCwgMTMwLCAx
LCAxKS5kYXRhWzBdICE9ICcwJykgT0sKLVJVTih2aWRlby5jdXJyZW50VGltZSArPSAxLjAwMSAv
IDI0KQotRVZFTlQoc2Vla2VkKQotRVhQRUNURUQgKGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLmdl
dEltYWdlRGF0YSgyNTAsIDEzMCwgMSwgMSkuZGF0YVswXSAhPSAnMCcpIE9LCi1SVU4odmlkZW8u
Y3VycmVudFRpbWUgKz0gMS4wMDEgLyAyNCkKLUVWRU5UKHNlZWtlZCkKLUVYUEVDVEVEIChjYW52
YXMuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMjUwLCAxMzAsIDEsIDEpLmRhdGFbMF0g
IT0gJzAnKSBPSwotRU5EIE9GIFRFU1QKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1wYWludC10by1jYW52YXMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8tY2FudmFzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4ZDA3MDVlNmJhNDQ0MDBhMzkzYTM5MWY5
NzE1OGY1M2QyYmNmYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1wYWludC10
by1jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+bWVkaWEtc291cmNlLXN0YWxsZWQtaG9s
ZHMtc2xlZXAtYXNzZXJ0aW9uPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0ibWVkaWEtc291cmNl
LWxvYWRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQ+Ci0KLSAgICB2YXIgY2FudmFzOwotICAgIHZhciBsb2Fk
ZXI7Ci0gICAgdmFyIHNvdXJjZTsKLSAgICB2YXIgc291cmNlQnVmZmVyOwotCi0gICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICAgICAgbWVkaWFFbGVtZW50ID0gdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOwotCi0gICAgICAgIGxvYWRlciA9IG5ldyBNZWRpYVNvdXJj
ZUxvYWRlcignY29udGVudC90ZXN0LWZyYWdtZW50ZWQtbWFuaWZlc3QuanNvbicpOwotICAgICAg
ICBsb2FkZXIub25sb2FkID0gbWVkaWFEYXRhTG9hZGVkOwotICAgICAgICBsb2FkZXIub25lcnJv
ciA9IG1lZGlhRGF0YUxvYWRpbmdGYWlsZWQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbWVkaWFE
YXRhTG9hZGluZ0ZhaWxlZCgpIHsKLSAgICAgICAgZmFpbFRlc3QoJ01lZGlhIGRhdGEgbG9hZGlu
ZyBmYWlsZWQnKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBtZWRpYURhdGFMb2FkZWQoKSB7Ci0g
ICAgICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOwotICAgICAgICB3YWl0Rm9yRXZlbnQo
J3NvdXJjZW9wZW4nLCBzb3VyY2VPcGVuLCBmYWxzZSwgZmFsc2UsIHNvdXJjZSk7Ci0gICAgICAg
IHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzb3VyY2VPcGVuKCkgewotICAgICAgICBzb3VyY2UuZHVyYXRpb24gPSBsb2FkZXIu
ZHVyYXRpb24oKTsKLSAgICAgICAgc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZl
cihsb2FkZXIudHlwZSgpKTsKLSAgICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAn
dXBkYXRlJywgc291cmNlSW5pdGlhbGl6ZWQsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc291cmNlSW5pdGlhbGl6ZWQoKSB7Ci0gICAgICAgIHdhaXRGb3JFdmVudCgnY2Fu
cGxheScsIGNhblBsYXksIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgc291cmNlQnVmZmVyLmFwcGVu
ZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBw
YWludCgpIHsKLSAgICAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZGVvLnZpZGVvV2lkdGggLyAyOwotICAgICAg
ICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQgLyAyOwotICAgICAgICBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCk7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYW52YXNlcycp
LmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0gICAgICAgIHRlc3RFeHBlY3RlZCgnY2FudmFzLmdldENv
bnRleHQoIjJkIikuZ2V0SW1hZ2VEYXRhKDI1MCwgMTMwLCAxLCAxKS5kYXRhWzBdJywgJzAnLCAn
IT0nKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjYW5QbGF5KCkgewotICAgICAgICBwYWludCgp
OwotICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZDEsIGZhbHNlLCB0cnVlKTsK
LSAgICAgICAgcnVuKCd2aWRlby5jdXJyZW50VGltZSArPSAxLjAwMSAvIDI0Jyk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc2Vla2VkMSgpIHsKLSAgICAgICAgcGFpbnQoKTsKLSAgICAgICAgd2Fp
dEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQyLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIHJ1bign
dmlkZW8uY3VycmVudFRpbWUgKz0gMS4wMDEgLyAyNCcpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHNlZWtlZDIoKSB7Ci0gICAgICAgIHBhaW50KCk7Ci0gICAgICAgIGVuZFRlc3QoKTsKLSAgICB9
Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAg
PGRpdiBpZD0iY2FudmFzZXMiPjwvY2FudmFzPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>