<?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>158960</bug_id>
          
          <creation_ts>2016-06-20 17:24:08 -0700</creation_ts>
          <short_desc>REGRESSION(r202248): breaks builds on the simulator (Requested by keith_mi_ on #webkit).</short_desc>
          <delta_ts>2016-06-20 17:27:13 -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>158893</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203952</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 17:24:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/202248 broke the build:
breaks builds on the simulator (Requested by keith_mi_ 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>1203956</commentid>
    <comment_count>1</comment_count>
      <attachid>281686</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 17:24:53 -0700</bug_when>
    <thetext>Created attachment 281686
ROLLOUT of r202248

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>1203957</commentid>
    <comment_count>2</comment_count>
      <attachid>281686</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 17:27:10 -0700</bug_when>
    <thetext>Comment on attachment 281686
ROLLOUT of r202248

Clearing flags on attachment: 281686

Committed r202255: &lt;http://trac.webkit.org/changeset/202255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203958</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-20 17:27:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281686</attachid>
            <date>2016-06-20 17:24:53 -0700</date>
            <delta_ts>2016-06-20 17:27:10 -0700</delta_ts>
            <desc>ROLLOUT of r202248</desc>
            <filename>bug-158960-20160620172447.patch</filename>
            <type>text/plain</type>
            <size>160032</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTFlNDkwNGQ5NjM2OWU4YjIxOWZlYmJjZmQwZmUzNWU4Zjk4MzM0Li43YWIxMDZkMDhiNjc5YmY1
MjZjNWYyN2U0NmUxOGNiNDVkMDUzODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNi0wNi0yMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjI0OC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODk2MAorCisgICAg
ICAgIGJyZWFrcyBidWlsZHMgb24gdGhlIHNpbXVsYXRvciAoUmVxdWVzdGVkIGJ5IGtlaXRoX21p
XyBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisK
KyAgICAgICAgIkl0IHNob3VsZCBiZSBlYXN5IHRvIGFkZCBhIHByaXZhdGUgZ2xvYmFsIGhlbHBl
ciBmdW5jdGlvbiBmb3IKKyAgICAgICAgYnVpbHRpbnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTMKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjAyMjQ4CisKIDIwMTYtMDYtMjAgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkIGJlIGVhc3kgdG8gYWRk
IGEgcHJpdmF0ZSBnbG9iYWwgaGVscGVyIGZ1bmN0aW9uIGZvciBidWlsdGlucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGM0NTk1NzEwNGJlM2U0Y2RlNzIxZDg3ZGQzY2MwN2FiNTFhY2VlNjguLmNjMWM4MTg4NGYw
MmI5ZWM5MTg3ZDAxY2IzYzIzODZiY2NkNjU3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNi0wNi0yMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjI0OC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODk2MAorCisgICAgICAgIGJyZWFr
cyBidWlsZHMgb24gdGhlIHNpbXVsYXRvciAoUmVxdWVzdGVkIGJ5IGtlaXRoX21pXyBvbgorICAg
ICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAg
Ikl0IHNob3VsZCBiZSBlYXN5IHRvIGFkZCBhIHByaXZhdGUgZ2xvYmFsIGhlbHBlciBmdW5jdGlv
biBmb3IKKyAgICAgICAgYnVpbHRpbnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg4OTMKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjAyMjQ4CisKIDIwMTYtMDYtMjAgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkb3B0IGNvbW1pdFByaW9yaXR5IHRvIGdldCByaWQgb2YgdGhl
IDIgQVZQTCBzb2x1dGlvbiBmb3IgUGlQCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMjA3NTFmZDY5YzJlOGRjZmI1NGI2OGM2NWI3NWFiMmJlMmRkNmE0OC4uNjM2NTZkMjI3
ZTUzNzg3NzRmOTk3ZmFmNDZkMWJhZTU5M2NhYzhkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNjg1LDYgKzY4NSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9K
U0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcu
Y3BwCisgICAgcnVudGltZS9KU0FycmF5SXRlcmF0b3IuY3BwCiAgICAgcnVudGltZS9KU0JvdW5k
RnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9KU0NKU1ZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSlND
YWxsZWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxYjdhYTM5OTc0NGMw
Y2RkZjk4YzU5OTFmMjQ1ZmMzYzUwNWZlM2UuLjY1ZmZmYTg0M2U4Y2VlOGMwMzc2Mjk1YTkwYzQy
MDYyMTQ2ZmJiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzEwLDcgKzE3
MTAsNyBAQAogCQlBNzRERUY5NTE4MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJdGVyYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRERUY4RjE4
MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJdGVyYXRvci5jcHAgKi87IH07CiAJCUE3NERFRjk2MTgy
RDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRERUY5MDE4MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJ
dGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NTcwNkRFMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1NzA2REQxMThB
MkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82NC5jcHAgKi87IH07Ci0JCUE3NUVFOUIy
MThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAvKiBCdWls
dGluTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlBNzVFRTlCMjE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFRTlCMDE4QUFCN0UyMDBB
QUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi87IH07CiAJCUE3NjZCNDRGMEVFOERDRDEwMDk1MThD
QSAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFs
bG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NjdCNUI1MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25Q
aGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzY3QjVCMzE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2Uu
Y3BwICovOyB9OwogCQlBNzY3QjVCNjE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRl
ckNyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3NjdCNUI0MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRp
b25QaGFzZS5oICovOyB9OwpAQCAtMTc2Niw2ICsxNzY2LDggQEAKIAkJQTdCNjAxODIxNjM5RkQy
QTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzlFNzgxRjE1RUVDQkE4MDA0N0M4NTUgLyogVW5saW5r
ZWRDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBN0JEQUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JE
QUVDMjE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgKi87IH07
CiAJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JEQUVDMzE3
RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oICovOyB9OworCQlBN0JE
QUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkRBRUM0MTdGNEVBMTQwMEY2MTQw
QyAvKiBKU0FycmF5SXRlcmF0b3IuY3BwICovOyB9OworCQlBN0JEQUVDQjE3RjRFQTE0MDBGNjE0
MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0JEQUVDNTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9y
LmggKi87IH07CiAJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdGaWx0cmF0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JG
RjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oICovOyB9OwogCQlB
N0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MwQzRBQjE2N0MwOENEMDAx
NzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2Ny
aXB0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QzBDNEFBMTY3QzA4Q0QwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgKi87IH07CkBAIC0z
OTg0LDYgKzM5ODYsOCBAQAogCQlBN0I0QUNBRTE0ODRDOUNFMDBCMzhBMzYgLyogSlNFeHBvcnRN
YWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFeHBvcnRNYWNyb3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCREFFQzIxN0Y0RUExNDAwRjYxNDBD
IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJQTdCREFFQzMxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0JE
QUVDNDE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBKU0FycmF5SXRlcmF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50
aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKKwkJQTdCREFFQzUxN0Y0RUExNDAwRjYxNDBDIC8q
IEpTQXJyYXlJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fy
cmF5SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCRkYzQkYxNzk4
Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHRmlsdHJhdGlvblJlc3VsdC5oOyBwYXRoID0gZGZnL0RGR0ZpbHRy
YXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDMEM0QUExNjdD
MDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU2NyaXB0UmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTdDMEM0QUIxNjdDMDhDRDAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFJlZlByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3MTMsNiArNTcxNyw4IEBACiAJCQkJMEYyQjY2QkEx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywKIAkJCQkwRjJCNjZC
QjE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXcuaCAqLywKIAkJCQkwRjJCNjZC
QzE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggKi8sCisJCQkJ
QTdCREFFQzQxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5jcHAgKi8sCisJCQkJ
QTdCREFFQzUxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oICovLAogCQkJCTg2
RkE5RThGMTQyQkJCMkQwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwICovLAogCQkJCTg2
RkE5RTkwMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCAqLywKIAkJCQk2NTdD
RjQ1NjE5QkY2NjYyMDA0QUNCRjIgLyogSlNDYWxsZWUuY3BwICovLApAQCAtNzY1NCw2ICs3NjYw
LDcgQEAKIAkJCQkwRjJCNjZFNzE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RTkxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
QXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQTE3QjZCNUFCMDBB
N0FFM0YgLyogSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
N0JEQUVDQjE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQxODBFMTZGNUNEMDBCMzQ0NjAgLyogSlNCYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDBEMTdENzBFOEFENEE5MDAwQ0QxN0QgLyogSlNCYXNlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODZGQTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlv
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTAwLDYgKzkxMDcsNyBAQAogCQkJCTBGMkI2NkU2MTdC
NkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMkI2NkU4MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTMxMUMzNzFDNzdDRUNBMDBFNkIxQjYgLyogSGVhcFNuYXBz
aG90QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0JEQUVDQTE3RjRFQTE0MDBGNjE0
MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjEzNTlCMEE2
NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZGQTlFOTEx
NDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDQwRjhBRjBBNTA4RDIwMDAwNUYwNjEgLyogSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
YnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRf
aGVhZGVyLnB5CmluZGV4IDYwZWViYzc3MjI2MzU1YTBjMTQ5ZDJmYTUwMjI0NzFjMDI5YjQ1OTku
Ljg5MWJkM2NiNDI2MGE4OTFhY2U1MjMzN2NhNjA3ZWM3NTdiMWQwZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2Nv
bWJpbmVkX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWls
dGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkKQEAgLTEsNiArMSw2IEBA
CiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5p
dmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTYwLDcgKzYwLDYgQEAgY2xhc3MgQnVpbHRpbnNDb21iaW5lZEhlYWRlckdlbmVyYXRv
cihCdWlsdGluc0dlbmVyYXRvcik6CiAgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5n
ZW5lcmF0ZV9zZWN0aW9uX2Zvcl9vYmplY3Qob2JqZWN0KSkKICAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV90YWJsZV9tYWNybygpKQogICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFj
cm8oKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jf
Z2xvYmFsX3ByaXZhdGVfY29kZV9uYW1lX21hY3JvKCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChUZW1wbGF0ZShUZW1wbGF0ZXMuQ29tYmluZWRIZWFkZXJTdGF0aWNNYWNyb3MpLnN1YnN0aXR1
dGUoYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFt
ZXNwYWNlQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLkhlYWRlckluY2x1ZGVHdWFyZEJvdHRvbSkuc3Vic3RpdHV0ZShh
cmdzKSkKQEAgLTE1MSwyMiArMTUwLDMgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJp
bGl0eSBzXyUoY29kZU5hbWUpc0NvbnN0cnVjdEFiaWxpdHk7IiIiICUgZnVuY3Rpb24KIAogICAg
ICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFtZSlzKSBcXCIgJSBmdW5j
dGlvbl9hcmdzKQogICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQotCi0gICAgZGVmIGdl
bmVyYXRlX3NlY3Rpb25fZm9yX2dsb2JhbF9wcml2YXRlX2NvZGVfbmFtZV9tYWNybyhzZWxmKToK
LSAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubW9kZWwo
KS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JyksCi0gICAgICAgIH0KLQotICAgICAg
ICBsaW5lcyA9IFtdCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4
KXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFxc
IiAlIGFyZ3MpCi0gICAgICAgIGZ1bmN0aW9ucyA9IGZpbHRlcihsYW1iZGEgZnVuY3Rpb246IGZ1
bmN0aW9uLmlzX2dsb2JhbF9wcml2YXRlLCBzZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpKQot
ICAgICAgICBmdW5jdGlvbnMuc29ydChrZXk9bGFtYmRhIHg6IHguZnVuY3Rpb25fbmFtZSkKLSAg
ICAgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKLSAgICAgICAgICAgIGZ1bmN0aW9uX2Fy
Z3MgPSB7Ci0gICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb24uZnVuY3Rpb25fbmFt
ZSwKLSAgICAgICAgICAgICAgICAnY29kZU5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVk
TmFtZUZvckZ1bmN0aW9uKGZ1bmN0aW9uKSwKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFtZSlzLCAlKGNvZGVOYW1lKXMpIFxcIiAl
IGZ1bmN0aW9uX2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX21v
ZGVsLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNf
bW9kZWwucHkKaW5kZXggNzdiMmI4ODVjZGNhMjFhOWRmZDM3MmIzMzVmMWM5M2QwZjQ5ZjU2OC4u
MDIyYTk4YjJiMjE2MTRkODQxYWU1Y2E2ZGJkNTAxMzk1YmFmNzJjMCAxMDA3NTUKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwu
cHkKQEAgLTQxLDkgKzQxLDggQEAgX0ZSQU1FV09SS19DT05GSUdfTUFQID0gewogfQogCiBmdW5j
dGlvbkhlYWRSZWdFeHAgPSByZS5jb21waWxlKHIiKD86QFtcd3w9XStccypcbikqZnVuY3Rpb25c
cytcdytccypcKC4qP1wpIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxMKQotZnVuY3Rpb25HbG9i
YWxQcml2YXRlUmVnRXhwID0gcmUuY29tcGlsZShyIi4qXkBnbG9iYWxQcml2YXRlIiwgcmUuTVVM
VElMSU5FIHwgcmUuRE9UQUxMKQotZnVuY3Rpb25JbnRyaW5zaWNSZWdFeHAgPSByZS5jb21waWxl
KHIiLipeQGludHJpbnNpYz0oXHcrKSIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLWZ1bmN0
aW9uSXNDb25zdHJ1Y3RvclJlZ0V4cCA9IHJlLmNvbXBpbGUociIuKl5AY29uc3RydWN0b3IiLCBy
ZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCitmdW5jdGlvbkludHJpbnNpY1JlZ0V4cCA9IHJlLmNv
bXBpbGUociJeQGludHJpbnNpYz0oXHcrKVxzKlxuIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxM
KQorZnVuY3Rpb25Jc0NvbnN0cnVjdG9yUmVnRXhwID0gcmUuY29tcGlsZShyIl5AY29uc3RydWN0
b3IiLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCiBmdW5jdGlvbk5hbWVSZWdFeHAgPSByZS5j
b21waWxlKHIiZnVuY3Rpb25ccysoXHcrKVxzKlwoIiwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxM
KQogZnVuY3Rpb25QYXJhbWV0ZXJGaW5kZXIgPSByZS5jb21waWxlKHIiXmZ1bmN0aW9uXHMrKD86
XHcrKVxzKlwoKCg/OlxzKlx3Kyk/XHMqKD86XHMqLFxzKlx3KykqKT9ccypcKSIsIHJlLk1VTFRJ
TElORSB8IHJlLkRPVEFMTCkKIApAQCAtOTUsMTIgKzk0LDExIEBAIGNsYXNzIEJ1aWx0aW5PYmpl
Y3Q6CiAKIAogY2xhc3MgQnVpbHRpbkZ1bmN0aW9uOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
dW5jdGlvbl9uYW1lLCBmdW5jdGlvbl9zb3VyY2UsIHBhcmFtZXRlcnMsIGlzX2NvbnN0cnVjdG9y
LCBpc19nbG9iYWxfcHJpdmF0ZSwgaW50cmluc2ljKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fc291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVy
cywgaW50cmluc2ljKToKICAgICAgICAgc2VsZi5mdW5jdGlvbl9uYW1lID0gZnVuY3Rpb25fbmFt
ZQogICAgICAgICBzZWxmLmZ1bmN0aW9uX3NvdXJjZSA9IGZ1bmN0aW9uX3NvdXJjZQotICAgICAg
ICBzZWxmLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzCiAgICAgICAgIHNlbGYuaXNfY29uc3RydWN0
b3IgPSBpc19jb25zdHJ1Y3RvcgotICAgICAgICBzZWxmLmlzX2dsb2JhbF9wcml2YXRlID0gaXNf
Z2xvYmFsX3ByaXZhdGUKKyAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycwogICAg
ICAgICBzZWxmLmludHJpbnNpYyA9IGludHJpbnNpYwogICAgICAgICBzZWxmLm9iamVjdCA9IE5v
bmUgICMgU2V0IGJ5IHRoZSBvd25pbmcgQnVpbHRpbk9iamVjdAogCkBAIC0xMjEsMTIgKzExOSwx
MSBAQCBjbGFzcyBCdWlsdGluRnVuY3Rpb246CiAKICAgICAgICAgZnVuY3Rpb25fbmFtZSA9IGZ1
bmN0aW9uTmFtZVJlZ0V4cC5maW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0KICAgICAgICAgaXNf
Y29uc3RydWN0b3IgPSBmdW5jdGlvbklzQ29uc3RydWN0b3JSZWdFeHAubWF0Y2goZnVuY3Rpb25f
c291cmNlKSAhPSBOb25lCi0gICAgICAgIGlzX2dsb2JhbF9wcml2YXRlID0gZnVuY3Rpb25HbG9i
YWxQcml2YXRlUmVnRXhwLm1hdGNoKGZ1bmN0aW9uX3NvdXJjZSkgIT0gTm9uZQogICAgICAgICBw
YXJhbWV0ZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBmdW5jdGlvblBhcmFtZXRlckZpbmRlci5m
aW5kYWxsKGZ1bmN0aW9uX3NvdXJjZSlbMF0uc3BsaXQoJywnKV0KICAgICAgICAgaWYgbGVuKHBh
cmFtZXRlcnNbMF0pID09IDA6CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gW10KIAotICAgICAg
ICByZXR1cm4gQnVpbHRpbkZ1bmN0aW9uKGZ1bmN0aW9uX25hbWUsIGZ1bmN0aW9uX3NvdXJjZSwg
cGFyYW1ldGVycywgaXNfY29uc3RydWN0b3IsIGlzX2dsb2JhbF9wcml2YXRlLCBpbnRyaW5zaWMp
CisgICAgICAgIHJldHVybiBCdWlsdGluRnVuY3Rpb24oZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25f
c291cmNlLCBpc19jb25zdHJ1Y3RvciwgcGFyYW1ldGVycywgaW50cmluc2ljKQogCiAgICAgZGVm
IF9fc3RyX18oc2VsZik6CiAgICAgICAgIGludGVyZmFjZSA9ICIlcyglcykiICUgKHNlbGYuZnVu
Y3Rpb25fbmFtZSwgJywgJy5qb2luKHNlbGYucGFyYW1ldGVycykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdAppbmRleCBhZjM5ODkzMzZmNjU2NDBj
ZjY5MjU2MTIyOTVhMjM5ODFlOGIwYmJiLi5kYmQzZTEyY2E0YTE5YzlkZmQ4M2JiODkzNmY1YjAy
YjE0YTg3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmlu
ZWQuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5q
cy1yZXN1bHQKQEAgLTYwLDggKzYwLDYgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJp
bGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWIKICAgICBt
YWNybyhmdWxmaWxsUHJvbWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFByb21pc2UpIFwKIAotI2Rl
ZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFj
cm8pIFwKLQogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5j
dGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSog
Y29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwOSw0MiArMTA3LDQ1IEBAIEpT
Q19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5j
bHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2lu
Y2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRl
ICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5
IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6
OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Q
cm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTA7Ci1zdGF0aWMgY29uc3QgSlNDOjpJ
bnRyaW5zaWMgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlSW50cmluc2ljID0gSlND
OjpOb0ludHJpbnNpYzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNv
ZGVMZW5ndGggPSA0MTM7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlz
ZUNvZGUgPQogICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHJlYXNvbilcbiIgXAogICAgICJ7XG4i
IFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICB2
YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAogICAg
ICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAogICAgICIgICAgcHJv
bWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAiICAg
IHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKICAgICAi
ICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKKyAgICAi
XG4iIFwKICAgICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVk
KHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAg
QHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAogICAgICJ9
KVxuIiBcCiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNl
RnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0
eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJv
bWlzZUNvZGVMZW5ndGggPSA0MDk7Ci1zdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWls
dGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9JbnRyaW5zaWM7
Citjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCA9IDQx
MjsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGUgPQogICAg
ICIoZnVuY3Rpb24gKHByb21pc2UsIHZhbHVlKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAg
XCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHZhciByZWFjdGlvbnMg
PSBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucztcbiIgXAogICAgICIgICAgcHJvbWlz
ZS5AcHJvbWlzZVJlc3VsdCA9IHZhbHVlO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBwcm9taXNl
RnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIgICAgcHJvbWlzZS5A
cHJvbWlzZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7XG4iIFwKKyAgICAiXG4iIFwKICAgICAi
ICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2
YWx1ZSwgcmVhY3Rpb25zKTtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgQHRyaWdnZXJQcm9t
aXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAg
LTE1Myw3ICsxNTQsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21p
c2VDb2RlID0KICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5j
dGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRp
bkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1l
IyNJbnRyaW5zaWMpOyB9CisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI1NvdXJjZSgpKTsgfQogSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggMGRmZTRh
MzYyOTc5ZmI3Mjk0MjI1ZmE4ODIzYzViMDJiNjdhM2MyNy4uMWIxZDVlMWZiYjQzYTNhYWUzMDFk
MDMzOTMzZTE2ZmM1ZmEwM2M4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9t
aXNlLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2Ut
U2VwYXJhdGUuanMtcmVzdWx0CkBAIC0xMDksNDIgKzEwOSw0NSBAQCBKU0NfRk9SRUFDSF9CVUlM
VElOLlBST01JU0VfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNp
bmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0j
aW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1
ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRp
blByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCA9IDQxMDsKLXN0YXRpYyBjb25zdCBKU0M6
OkludHJpbnNpYyBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVJbnRyaW5zaWMgPSBK
U0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNl
Q29kZUxlbmd0aCA9IDQxMzsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9t
aXNlQ29kZSA9CiAgICAgIihmdW5jdGlvbiAocHJvbWlzZSwgcmVhc29uKVxuIiBcCiAgICAgIntc
biIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAg
IHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zO1xuIiBcCiAg
ICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCiAgICAgIiAgICBw
cm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAgICIg
ICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAogICAg
ICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAorICAg
ICJcbiIgXAogICAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0
ZWQocHJvbWlzZSwgcmVhc29uLCByZWFjdGlvbnMpO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAg
ICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pO1xuIiBcCiAgICAg
In0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21p
c2VGdWxmaWxsUHJvbWlzZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmls
aXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQ
cm9taXNlQ29kZUxlbmd0aCA9IDQwOTsKLXN0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1
aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoID0g
NDEyOwogY29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSA9CiAg
ICAgIihmdW5jdGlvbiAocHJvbWlzZSwgdmFsdWUpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAg
ICBcInVzZSBzdHJpY3RcIjtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgdmFyIHJlYWN0aW9u
cyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zO1xuIiBcCiAgICAgIiAgICBwcm9t
aXNlLkBwcm9taXNlUmVzdWx0ID0gdmFsdWU7XG4iIFwKICAgICAiICAgIHByb21pc2UuQHByb21p
c2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNlLkBw
cm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCiAgICAgIiAgICBwcm9taXNl
LkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDtcbiIgXAorICAgICJcbiIgXAogICAg
ICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2Us
IHZhbHVlLCByZWFjdGlvbnMpO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBAdHJpZ2dlclBy
b21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7XG4iIFwKICAgICAifSlcbiIgXAogOwpA
QCAtMTUzLDcgKzE1Niw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJv
bWlzZUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1
bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNv
ZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0LCBzXyMjY29kZU5h
bWUjI0ludHJpbnNpYyk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNv
ZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5j
b2RlTmFtZSMjU291cmNlKCkpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJ
Tl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29t
YmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQu
anMtcmVzdWx0CmluZGV4IDBiYTFkMGE1MzUyMTFhNjI1YjlmODg0ZjVkYTg2NzNjZjgxMzYwMDYu
LjJiYjRjYmNlN2E4N2Y4ZmQwMGM5MmY0MWM0MjQ4ZmZiOWQwZjM2OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy1yZXN1bHQKQEAgLTYxLDggKzYx
LDYgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5
cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkKICAgICBtYWNybyhldmVyeSkgXAogICAgIG1h
Y3JvKGZvckVhY2gpIFwKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BS
SVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKLQogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6
OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAg
LTExMSwxOSArMTA5LDE4IEBAIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxU
SU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVk
ZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ2Vs
bElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3Qg
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUNvbnN0cnVj
dEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0
IGludCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVMZW5ndGggPSA3NjA7Ci1zdGF0aWMgY29u
c3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlSW50cmluc2ljID0g
SlNDOjpOb0ludHJpbnNpYzsKK2NvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVM
ZW5ndGggPSA3NjI7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQog
ICAgICIoZnVuY3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwi
dXNlIHN0cmljdFwiO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVs
bClcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90
eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsXCIpO1xuIiBcCiAgICAg
IiAgICBcbiIgXApAQCAtMTMyLDYgKzEyOSw3IEBAIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3Rv
dHlwZUV2ZXJ5Q29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9i
amVjdCh0aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5s
ZW5ndGgpO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9
PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihc
IkFycmF5LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4i
IFwKICAgICAiICAgIFxuIiBcCkBAIC0xNDksMTIgKzE0NywxMiBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJv
dG90eXBlRm9yRWFjaENvZGVMZW5ndGggPSA2OTI7Ci1zdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5z
aWMgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmlu
c2ljOworY29uc3QgaW50IHNfYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlTGVuZ3RoID0gNjk0
OwogY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGUgPQogICAgICIoZnVu
Y3Rpb24gKGNhbGxiYWNrIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmlj
dFwiO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAodGhpcyA9PT0gbnVsbClcbiIgXAog
ICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVh
Y2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKICAgICAiICAgIFxu
IiBcCkBAIC0xNjMsNiArMTYxLDcgQEAgY29uc3QgY2hhciogc19idWlsdGluUHJvdG90eXBlRm9y
RWFjaENvZGUgPQogICAgICIgICAgXG4iIFwKICAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3Qo
dGhpcyk7XG4iIFwKICAgICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3Ro
KTtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJm
dW5jdGlvblwiKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJh
eS5wcm90b3R5cGUuZm9yRWFjaCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4iIFwK
ICAgICAiICAgIFxuIiBcCkBAIC0xNzksNyArMTc4LDcgQEAgY29uc3QgY2hhciogc19idWlsdGlu
UHJvdG90eXBlRm9yRWFjaENvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1Io
Y29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAgcmV0
dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5r
KHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxsb3B0
LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1
dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVj
dXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElOX0NP
REUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVS
QVRPUgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0
ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1y
ZXN1bHQKaW5kZXggM2NjZTkzYWI4ZWE4NzI1ZGQ3NjQzOGNmZGJjYjRhNWU5ZGZlODYwOS4uMzE1
ZTAwZThiOTk4YWNkNzkzYjUyMGE1NGVjNmY5ODk1NDQ3ZGIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTExLDE5ICsxMTEs
MTggQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTi5QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFQ0xBUkVf
QlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKICNp
bmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSW50cmluc2ljLmgiCiAjaW5jbHVkZSAi
SlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCiBj
b25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29u
c3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0Owot
Y29uc3QgaW50IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MDsKLXN0YXRp
YyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVJbnRyaW5z
aWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5
Q29kZUxlbmd0aCA9IDc2MjsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29k
ZSA9CiAgICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIg
ICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09
PSBudWxsKVxuIiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5w
cm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwK
ICAgICAiICAgIFxuIiBcCkBAIC0xMzIsNiArMTMxLDcgQEAgY29uc3QgY2hhciogc19idWlsdGlu
UHJvdG90eXBlRXZlcnlDb2RlID0KICAgICAiICAgIFxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXkg
PSBAT2JqZWN0KHRoaXMpO1xuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFy
cmF5Lmxlbmd0aCk7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIGlmICh0eXBlb2YgY2FsbGJh
Y2sgIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVy
cm9yKFwiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwi
KTtcbiIgXAogICAgICIgICAgXG4iIFwKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIGNvbnN0IGNoYXIq
IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBK
U0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0
aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUxlbmd0aCA9IDY5MjsKLXN0YXRpYyBjb25zdCBKU0M6Oklu
dHJpbnNpYyBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUludHJpbnNpYyA9IEpTQzo6Tm9J
bnRyaW5zaWM7Citjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgg
PSA2OTQ7CiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAgICAg
IihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ug
c3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxu
IiBcCiAgICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUu
Zm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAogICAgICIg
ICAgXG4iIFwKQEAgLTE2Myw2ICsxNjMsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5
cGVGb3JFYWNoQ29kZSA9CiAgICAgIiAgICBcbiIgXAogICAgICIgICAgdmFyIGFycmF5ID0gQE9i
amVjdCh0aGlzKTtcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5s
ZW5ndGgpO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9
PSBcImZ1bmN0aW9uXCIpXG4iIFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihc
IkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvblwiKTtc
biIgXAogICAgICIgICAgXG4iIFwKQEAgLTE3OSw3ICsxODAsNyBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVS
QVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAg
ICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCkt
Pmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51
bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQorICAgIHJldHVybiB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRp
bkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KIEpTQ19GT1JFQUNIX0JVSUxU
SU4uUFJPVE9UWVBFX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5k
ZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
Q29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0CmluZGV4IGRmZTZhM2RjMjYwMGIxYjQ0OGFm
NDI0NjM2YTkwMmE0ZGRjNmIzODcuLjAzOTFkZTI4ZDQ1NzY4NjE1NmM2ZDM1MTg5MzlmZWVlYzVk
Y2VhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5l
ZC5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVk
LmpzLXJlc3VsdApAQCAtNjAsOCArNjAsNiBAQCBleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVDb25zdHJ1Y3RBYmlsaXR5OwogICAg
IG1hY3JvKGZyb20pIFwKICAgICBtYWNybyhvZikgXAogCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JV
SUxUSU5fRlVOQ1RJT05fUFJJVkFURV9HTE9CQUxfTkFNRShtYWNybykgXAotCiAjZGVmaW5lIERF
Q0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRD
b3VudCkgXAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9y
KEpTQzo6Vk0mKTsKIApAQCAtMTA5LDIwICsxMDcsMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9D
T0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAKICNpbmNsdWRlICJCdWlsdGluRXhlY3V0
YWJsZXMuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSW50cmluc2ljLmgi
CiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0
b3JPZkNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RD
b25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGggPSAy
ODY7Ci1zdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc19idWlsdGluQ29uc3RydWN0b3JPZkNv
ZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0
cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjk0OwogY29uc3QgY2hhciogc19idWlsdGluQ29uc3RydWN0
b3JPZkNvZGUgPQogICAgICIoZnVuY3Rpb24gKClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAg
IFwidXNlIHN0cmljdFwiO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICB2YXIgbGVuZ3RoID0g
YXJndW1lbnRzLmxlbmd0aDtcbiIgXAorICAgICIgICAgLy9cbiIgXAogICAgICIgICAgdmFyIGFy
cmF5ID0gdHlwZW9mIHRoaXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3
IEBBcnJheShsZW5ndGgpO1xuIiBcCiAgICAgIiAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbmd0
aDsgKytrKVxuIiBcCiAgICAgIiAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1
bWVudHNba10pO1xuIiBcCkBAIC0xMzIsMzUgKzEzMCw0OSBAQCBjb25zdCBjaGFyKiBzX2J1aWx0
aW5Db25zdHJ1Y3Rvck9mQ29kZSA9CiA7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBz
X2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVj
dG9yRnJvbUNvZGVMZW5ndGggPSAxOTc5Owotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
YnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOwor
Y29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGVMZW5ndGggPSAyMDQ2OwogY29u
c3QgY2hhciogc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIihmdW5jdGlvbiAo
aXRlbXMgKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwK
KyAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzT2JqID0gdGhpcztcbiIgXAorICAgICJcbiIg
XAogICAgICIgICAgdmFyIG1hcEZuID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNb
MV0gOiB1bmRlZmluZWQ7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHZhciB0aGlzQXJnO1xu
IiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkge1xuIiBc
CiAgICAgIiAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCiAg
ICAgIiAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1aXJl
cyB0aGF0IHRoZSBzZWNvbmQgYXJndW1lbnQsIHdoZW4gcHJvdmlkZWQsIGJlIGEgZnVuY3Rpb25c
Iik7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+
IDIpXG4iIFwKICAgICAiICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTtcbiIgXAog
ICAgICIgICAgfVxuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAoaXRlbXMgPT0gbnVsbClc
biIgXAogICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkuZnJvbSByZXF1
aXJlcyBhbiBhcnJheS1saWtlIG9iamVjdCAtIG5vdCBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiIg
XAorICAgICJcbiIgXAogICAgICIgICAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gaXRlbXNbQHN5bWJv
bEl0ZXJhdG9yXTtcbiIgXAogICAgICIgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHtc
biIgXAogICAgICIgICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09IFwiZnVuY3Rp
b25cIilcbiIgXAogICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5
LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgcHJvcGVydHkgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LCBp
dGVtc1tTeW1ib2wuaXRlcmF0b3JdLCB3aGVuIGV4aXN0cywgYmUgYSBmdW5jdGlvblwiKTtcbiIg
XAorICAgICJcbiIgXAorICAgICIgICAgICAgIC8vXG4iIFwKICAgICAiICAgICAgICB2YXIgcmVz
dWx0ID0gKHR5cGVvZiB0aGlzT2JqID09PSBcImZ1bmN0aW9uXCIpID8gQE9iamVjdChuZXcgdGhp
c09iaigpKSA6IFtdO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICAgICAgdmFyIGsgPSAwO1xu
IiBcCiAgICAgIiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRl
bXMpO1xuIiBcCisgICAgIlxuIiBcCisgICAgIiAgICAgICAgLy9cbiIgXAorICAgICIgICAgICAg
IC8vXG4iIFwKKyAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHdyYXBwZXIg
PSB7XG4iIFwKICAgICAiICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7XG4iIFwKICAg
ICAiICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjtcbiIgXAogICAgICIgICAgICAgICAg
ICB9XG4iIFwKICAgICAiICAgICAgICB9O1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICAgICAg
Zm9yICh2YXIgdmFsdWUgb2Ygd3JhcHBlcikge1xuIiBcCiAgICAgIiAgICAgICAgICAgIGlmICht
YXBGbilcbiIgXAogICAgICIgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwg
aywgdGhpc0FyZyA9PT0gdW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwo
dGhpc0FyZywgdmFsdWUsIGspKTtcbiIgXApAQCAtMTY4LDEyICsxODAsMTcgQEAgY29uc3QgY2hh
ciogc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAgICAgIiAgICAgICAgICAgICAgICBA
cHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAgICAgICAg
ayArPSAxO1xuIiBcCiAgICAgIiAgICAgICAgfVxuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICAg
ICAgcmVzdWx0Lmxlbmd0aCA9IGs7XG4iIFwKICAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xu
IiBcCiAgICAgIiAgICB9XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2Ug
PSBAT2JqZWN0KGl0ZW1zKTtcbiIgXAogICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0
b0xlbmd0aChhcnJheUxpa2UubGVuZ3RoKTtcbiIgXAorICAgICJcbiIgXAorICAgICIgICAgLy9c
biIgXAogICAgICIgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlv
blwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5
KGFycmF5TGlrZUxlbmd0aCk7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHZhciBrID0gMDtc
biIgXAogICAgICIgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAogICAgICIg
ICAgICAgIHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTtcbiIgXApAQCAtMTgzLDYgKzIwMCw3IEBA
IGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAg
ICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKICAgICAiICAgICAg
ICBrICs9IDE7XG4iIFwKICAgICAiICAgIH1cbiIgXAorICAgICJcbiIgXAogICAgICIgICAgcmVz
dWx0Lmxlbmd0aCA9IGFycmF5TGlrZUxlbmd0aDtcbiIgXAogICAgICIgICAgcmV0dXJuIHJlc3Vs
dDtcbiIgXAogICAgICJ9KVxuIiBcCkBAIC0xOTIsNyArMjEwLDcgQEAgY29uc3QgY2hhciogc19i
dWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZSA9CiAjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVS
QVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiBKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKLSAg
ICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCkt
Pmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCksIE51
bGxvcHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgfQorICAgIHJldHVybiB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRp
bkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KIEpTQ19GT1JFQUNIX0JVSUxU
SU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5f
R0VORVJBVE9SCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1T
ZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJh
dGUuanMtcmVzdWx0CmluZGV4IGVkMTg0NWViOGJjMjgxOTNhZjVlYzJmZDNmOWE0Yzg1ZmI4ODYw
YTYuLjJkMjZlNDkzNDA4MmFlZDYxMjI2NzUzM2EwMWI0NzJmM2U5NTVlNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMTA5
LDIwICsxMDksMjAgQEAgSlNDX0ZPUkVBQ0hfQlVJTFRJTkNPTlNUUlVDVE9SX0JVSUxUSU5fQ09E
RShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFi
bGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkludHJpbnNpYy5oIgog
I2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9y
T2ZDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29u
c3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlTGVuZ3RoID0gMjg2
Owotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
SW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKK2NvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1
Y3Rvck9mQ29kZUxlbmd0aCA9IDI5NDsKIGNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9y
T2ZDb2RlID0KICAgICAiKGZ1bmN0aW9uICgpXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgICBc
InVzZSBzdHJpY3RcIjtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgdmFyIGxlbmd0aCA9IGFy
Z3VtZW50cy5sZW5ndGg7XG4iIFwKKyAgICAiICAgIC8vXG4iIFwKICAgICAiICAgIHZhciBhcnJh
eSA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBA
QXJyYXkobGVuZ3RoKTtcbiIgXAogICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7
ICsraylcbiIgXAogICAgICIgICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1l
bnRzW2tdKTtcbiIgXApAQCAtMTMyLDM1ICsxMzIsNDkgQEAgY29uc3QgY2hhciogc19idWlsdGlu
Q29uc3RydWN0b3JPZkNvZGUgPQogOwogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19i
dWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVj
dEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3Rv
ckZyb21Db2RlTGVuZ3RoID0gMTk3OTsKLXN0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2J1
aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNpYzsKK2Nv
bnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoID0gMjA0NjsKIGNvbnN0
IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIoZnVuY3Rpb24gKGl0
ZW1zIClcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCisg
ICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4iIFwKKyAgICAiXG4iIFwK
ICAgICAiICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFd
IDogdW5kZWZpbmVkO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICB2YXIgdGhpc0FyZztcbiIg
XAorICAgICJcbiIgXAogICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAog
ICAgICIgICAgICAgIGlmICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rpb25cIilcbiIgXAogICAg
ICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMg
dGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIp
O1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAy
KVxuIiBcCiAgICAgIiAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07XG4iIFwKICAg
ICAiICAgIH1cbiIgXAorICAgICJcbiIgXAogICAgICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4i
IFwKICAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWly
ZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwK
KyAgICAiXG4iIFwKICAgICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJ
dGVyYXRvcl07XG4iIFwKICAgICAiICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4i
IFwKICAgICAiICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9u
XCIpXG4iIFwKICAgICAiICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5m
cm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRl
bXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwK
KyAgICAiXG4iIFwKKyAgICAiICAgICAgICAvL1xuIiBcCiAgICAgIiAgICAgICAgdmFyIHJlc3Vs
dCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNP
YmooKSkgOiBbXTtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgICAgIHZhciBrID0gMDtcbiIg
XAogICAgICIgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1z
KTtcbiIgXAorICAgICJcbiIgXAorICAgICIgICAgICAgIC8vXG4iIFwKKyAgICAiICAgICAgICAv
L1xuIiBcCisgICAgIiAgICAgICAgLy9cbiIgXAogICAgICIgICAgICAgIHZhciB3cmFwcGVyID0g
e1xuIiBcCiAgICAgIiAgICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3JdKCkge1xuIiBcCiAgICAg
IiAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKICAgICAiICAgICAgICAgICAg
fVxuIiBcCiAgICAgIiAgICAgICAgfTtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgICAgIGZv
ciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIgXAogICAgICIgICAgICAgICAgICBpZiAobWFw
Rm4pXG4iIFwKICAgICAiICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGss
IHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRo
aXNBcmcsIHZhbHVlLCBrKSk7XG4iIFwKQEAgLTE2OCwxMiArMTgyLDE3IEBAIGNvbnN0IGNoYXIq
IHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogICAgICIgICAgICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAgICAgIGsg
Kz0gMTtcbiIgXAogICAgICIgICAgICAgIH1cbiIgXAorICAgICJcbiIgXAogICAgICIgICAgICAg
IHJlc3VsdC5sZW5ndGggPSBrO1xuIiBcCiAgICAgIiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIg
XAogICAgICIgICAgfVxuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICB2YXIgYXJyYXlMaWtlID0g
QE9iamVjdChpdGVtcyk7XG4iIFwKICAgICAiICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9M
ZW5ndGgoYXJyYXlMaWtlLmxlbmd0aCk7XG4iIFwKKyAgICAiXG4iIFwKKyAgICAiICAgIC8vXG4i
IFwKICAgICAiICAgIHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09IFwiZnVuY3Rpb25c
IikgPyBAT2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShh
cnJheUxpa2VMZW5ndGgpO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICB2YXIgayA9IDA7XG4i
IFwKICAgICAiICAgIHdoaWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7XG4iIFwKICAgICAiICAg
ICAgICB2YXIgdmFsdWUgPSBhcnJheUxpa2Vba107XG4iIFwKQEAgLTE4Myw2ICsyMDIsNyBAQCBj
b25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlID0KICAgICAiICAgICAgICAg
ICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpO1xuIiBcCiAgICAgIiAgICAgICAg
ayArPSAxO1xuIiBcCiAgICAgIiAgICB9XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHJlc3Vs
dC5sZW5ndGggPSBhcnJheUxpa2VMZW5ndGg7XG4iIFwKICAgICAiICAgIHJldHVybiByZXN1bHQ7
XG4iIFwKICAgICAifSlcbiIgXApAQCAtMTkyLDcgKzIxMiw3IEBAIGNvbnN0IGNoYXIqIHNfYnVp
bHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAogSlNDOjpGdW5jdGlv
bkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtcCi0gICAg
cmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5s
aW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpLCBOdWxs
b3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IH0KKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9CiBKU0NfRk9SRUFDSF9CVUlMVElO
Q09OU1RSVUNUT1JfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRl
ZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50
ZXJuYWxDbGFzaGluZ05hbWVzLUNvbWJpbmVkLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUludGVy
bmFsQ2xhc2hpbmdOYW1lcy1Db21iaW5lZC5qcy1yZXN1bHQKaW5kZXggMjcwNzJkMzIwMzg5ODcy
MGRiYWY2MjI5NmMyN2NhNDdjYjg4NjA2My4uZDU2OWFjNTI4ZmVkNGM3NGFjNWJiYTc4OTczOWQz
Y2U5ZWNhMjg4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtSW50ZXJuYWxDbGFzaGluZ05hbWVz
LUNvbWJpbmVkLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1JbnRlcm5hbENsYXNoaW5nTmFt
ZXMtQ29tYmluZWQuanMtcmVzdWx0CkBAIC01OSw4ICs1OSw2IEBAIGV4dGVybiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFt
TG9ja2VkCiAjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykg
XAogICAgIG1hY3JvKGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQpIFwKIAotI2RlZmluZSBKU0NfRk9S
RUFDSF9CVUlMVElOX0ZVTkNUSU9OX1BSSVZBVEVfR0xPQkFMX05BTUUobWFjcm8pIFwKLQogI2Rl
ZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFy
Z3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dl
bmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTEwOCwzMCArMTA2LDI5IEBAIEpTQ19GT1JFQUNIX0JV
SUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjaW5jbHVkZSAiQnVpbHRp
bkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkludHJp
bnNpYy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJWTS5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxD
bGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0g
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRl
cm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOwot
c3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGVJbnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3Qg
aW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5n
dGggPSA3MTsKIGNvbnN0IGNoYXIqIHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0
cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4i
IFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHJl
dHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlND
OjpDb25zdHJ1Y3RBYmlsaXR5IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5u
b3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19pbnRlcm5hbENsYXNoaW5nTmFtZXNJc1JlYWRhYmxl
U3RyZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOwotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2lj
IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVJbnRyaW5z
aWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfaW50ZXJuYWxDbGFzaGluZ05hbWVz
SXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MTsKIGNvbnN0IGNoYXIqIHNfaW50
ZXJuYWxDbGFzaGluZ05hbWVzSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVu
Y3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7
XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBc
CiAgICAgIn0pXG4iIFwKIDsKQEAgLTE0MCw3ICsxMzcsNyBAQCBjb25zdCBjaGFyKiBzX2ludGVy
bmFsQ2xhc2hpbmdOYW1lc0lzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICNkZWZpbmUgREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291
bnQpIFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mIHZtKSBcCiB7XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVO
YW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyB9CisgICAg
cmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5s
aW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQog
SlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRl
ZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlD
b25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRyYXJ5Q29uZGl0
aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggNGUyNTUxNTBiZTM2YmQzMmM0ZTQw
NmNjNWQ1Y2VkY2NjYWRmZTM0OS4uNWI2MWQyZjgyMGU5MGIxMTI4OGI5N2Y2YzkyMjcwNGY4MTRi
MDVkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVp
bHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRl
LmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQtU2VwYXJhdGUu
anMtcmVzdWx0CkBAIC0xNjIsNyArMTYyLDYgQEAgaW5saW5lIHZvaWQgQXJiaXRyYXJ5Q29uZGl0
aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogCiAjaW5jbHVkZSAiV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTcxLDEyICsxNzAsMTIgQEAgaW5saW5l
IHZvaWQgQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFt
ZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVDb25z
dHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1j
b25zdCBpbnQgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tl
ZENvZGVMZW5ndGggPSA3MDsKLXN0YXRpYyBjb25zdCBKU0M6OkludHJpbnNpYyBzX2FyYml0cmFy
eUNvbmRpdGlvbmFsR3VhcmRJc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpT
Qzo6Tm9JbnRyaW5zaWM7Citjb25zdCBpbnQgc19hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkSXNS
ZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVMZW5ndGggPSA3MTsKIGNvbnN0IGNoYXIqIHNfYXJiaXRy
YXJ5Q29uZGl0aW9uYWxHdWFyZElzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KICAgICAiKGZ1
bmN0aW9uIChzdHJlYW0pXG4iIFwKICAgICAie1xuIiBcCiAgICAgIiAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICByZXR1cm4gISFzdHJlYW0uQHJlYWRlcjtcbiIg
XAogICAgICJ9KVxuIiBcCiA7CkBAIC0xODYsNyArMTg1LDcgQEAgY29uc3QgY2hhciogc19hcmJp
dHJhcnlDb25kaXRpb25hbEd1YXJkSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGUgPQogSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKIHtc
CiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50
RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5G
dW5jdGlvbnMoKS5hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkQnVpbHRpbnMoKS5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuYXJi
aXRyYXJ5Q29uZGl0aW9uYWxHdWFyZEJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpLCBOdWxs
b3B0LCBzXyMjY29kZU5hbWUjI0ludHJpbnNpYyk7IFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+
YnVpbHRpbkZ1bmN0aW9ucygpLmFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmRCdWlsdGlucygpLmNv
ZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS5hcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNl
KCkpOyBcCiB9CiBXRUJDT1JFX0ZPUkVBQ0hfQVJCSVRSQVJZQ09ORElUSU9OQUxHVUFSRF9CVUlM
VElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFRklORV9CVUlMVElO
X0dFTkVSQVRPUgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCA4M2Rl
YzU3ODg3OTVmMzBlNzk3OTllZDI5YWQ0NTNhOTJlZWU0Mzg2Li41YjE1NDRjYjU5YWFlMWE3OWVl
NGVjYjJkZWNkN2Q0NjNmZWE0MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNl
cGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJl
c3VsdApAQCAtMTYyLDcgKzE2Miw2IEBAIGlubGluZSB2b2lkIEd1YXJkZWRCdWlsdGluQnVpbHRp
bnNXcmFwcGVyOjpleHBvcnROYW1lcygpCiAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FeGVjdXRhYmxlLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9J
bnRyaW5zaWMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0NlbGxJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmg+CkBAIC0xNzEsMTIgKzE3MCwxMiBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkQnVp
bHRpbkJ1aWx0aW5zV3JhcHBlcjo6ZXhwb3J0TmFtZXMoKQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkQ29kZUxlbmd0aCA9IDcwOwotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
Z3VhcmRlZEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZUludHJpbnNpYyA9IEpTQzo6
Tm9JbnRyaW5zaWM7Citjb25zdCBpbnQgc19ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVTdHJlYW1M
b2NrZWRDb2RlTGVuZ3RoID0gNzE7CiBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFk
YWJsZVN0cmVhbUxvY2tlZENvZGUgPQogICAgICIoZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAg
ICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAi
ICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xuIiBcCiAgICAgIn0pXG4iIFwKIDsKQEAgLTE4
Niw3ICsxODUsNyBAQCBjb25zdCBjaGFyKiBzX2d1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVh
bUxvY2tlZENvZGUgPQogSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0
b3IoSlNDOjpWTSYgdm0pIFwKIHtcCiAgICAgSlNWTUNsaWVudERhdGEqIGNsaWVudERhdGEgPSBz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcCi0gICAgcmV0dXJu
IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCku
Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0
aW9ucygpLmd1YXJkZWRCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMjU291cmNlKCksIE51bGxv
cHQsIHNfIyNjb2RlTmFtZSMjSW50cmluc2ljKTsgXAorICAgIHJldHVybiBjbGllbnREYXRhLT5i
dWlsdGluRnVuY3Rpb25zKCkuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVj
dXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5ndWFyZGVk
QnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAogfQogV0VCQ09SRV9GT1JF
QUNIX0dVQVJERURCVUlMVElOX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1Ip
CiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJu
YWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAxYzYxYWFiMGYyYWRiYmQ1YTYxZjE2
NGUzNWZmMTU4ZmFjY2MzM2NlLi41M2I1NTUyZTJjY2U1NjZjYTg1ZmIyODc1ZWQ1OTVlZjViNWNh
MmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMt
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1
bHQKQEAgLTE5NCw3ICsxOTQsNiBAQCBpbmxpbmUgdm9pZCBHdWFyZGVkSW50ZXJuYWxCdWlsdGlu
QnVpbHRpbkZ1bmN0aW9uczo6dmlzaXQoSlNDOjpTbG90VmlzaXRvciYgdmlzaQogCiAjaW5jbHVk
ZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMjAzLDEyICsyMDIsMTIgQEAg
aW5saW5lIHZvaWQgR3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0
KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2kKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgSlND
OjpDb25zdHJ1Y3RBYmlsaXR5IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJl
YW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFi
bGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzA7Ci1zdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5z
aWMgc19ndWFyZGVkSW50ZXJuYWxCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVJbnRy
aW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfZ3VhcmRlZEludGVybmFsQnVp
bHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzE7CiBjb25zdCBjaGFyKiBz
X2d1YXJkZWRJbnRlcm5hbEJ1aWx0aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAg
IihmdW5jdGlvbiAoc3RyZWFtKVxuIiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJp
Y3RcIjtcbiIgXAorICAgICJcbiIgXAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7
XG4iIFwKICAgICAifSlcbiIgXAogOwpAQCAtMjE4LDcgKzIxNyw3IEBAIGNvbnN0IGNoYXIqIHNf
Z3VhcmRlZEludGVybmFsQnVpbHRpbklzUmVhZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6
RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7
XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVu
dERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGlu
RnVuY3Rpb25zKCkuZ3VhcmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4
ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9ucygpLmd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSwgTnVsbG9wdCwg
c18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBcCisgICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0
aW5GdW5jdGlvbnMoKS5ndWFyZGVkSW50ZXJuYWxCdWlsdGluQnVpbHRpbnMoKS5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkuZ3Vh
cmRlZEludGVybmFsQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAogfQog
V0VCQ09SRV9GT1JFQUNIX0dVQVJERURJTlRFUk5BTEJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3Jl
LVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IGNlZGY4ZmI0YmVhYWEz
M2NmZmMzMWE5YWI1MzcwNzc3MjU1MDNiMzEuLjdjOTZiOWYxNDVmMWFiYjM3MzllMWUwYWE5ZTFk
Mzg5ODQ4OWRmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5q
cy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApA
QCAtMTU2LDcgKzE1Niw2IEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGluc1dy
YXBwZXI6OmV4cG9ydE5hbWVzKCkKIAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0V4ZWN1dGFibGUuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludHJp
bnNpYy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTQ2VsbElubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaD4KQEAgLTE2NSwxMiArMTY0LDEyIEBAIGlubGluZSB2b2lkIFVuZ3VhcmRlZEJ1aWx0
aW5CdWlsdGluc1dyYXBwZXI6OmV4cG9ydE5hbWVzKCkKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzA7Ci1zdGF0aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMg
c191bmd1YXJkZWRCdWlsdGluSXNSZWFkYWJsZVN0cmVhbUxvY2tlZENvZGVJbnRyaW5zaWMgPSBK
U0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfdW5ndWFyZGVkQnVpbHRpbklzUmVhZGFibGVT
dHJlYW1Mb2NrZWRDb2RlTGVuZ3RoID0gNzE7CiBjb25zdCBjaGFyKiBzX3VuZ3VhcmRlZEJ1aWx0
aW5Jc1JlYWRhYmxlU3RyZWFtTG9ja2VkQ29kZSA9CiAgICAgIihmdW5jdGlvbiAoc3RyZWFtKVxu
IiBcCiAgICAgIntcbiIgXAogICAgICIgICBcInVzZSBzdHJpY3RcIjtcbiIgXAorICAgICJcbiIg
XAogICAgICIgICAgcmV0dXJuICEhc3RyZWFtLkByZWFkZXI7XG4iIFwKICAgICAifSlcbiIgXAog
OwpAQCAtMTgwLDcgKzE3OSw3IEBAIGNvbnN0IGNoYXIqIHNfdW5ndWFyZGVkQnVpbHRpbklzUmVh
ZGFibGVTdHJlYW1Mb2NrZWRDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFt
ZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGll
bnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAot
ICAgIHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkudW5ndWFyZGVkQnVpbHRp
bkJ1aWx0aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+
YnVpbHRpbkZ1bmN0aW9ucygpLnVuZ3VhcmRlZEJ1aWx0aW5CdWlsdGlucygpLmNvZGVOYW1lIyNT
b3VyY2UoKSwgTnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBcCisgICAgcmV0dXJu
IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS51bmd1YXJkZWRCdWlsdGluQnVpbHRpbnMo
KS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVu
Y3Rpb25zKCkudW5ndWFyZGVkQnVpbHRpbkJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsg
XAogfQogV0VCQ09SRV9GT1JFQUNIX1VOR1VBUkRFREJVSUxUSU5fQlVJTFRJTl9DT0RFKERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXht
bENhc2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDE1NDRkZmI0NTAyNGM4YmExZmIz
MzBiMWE1NzYyNWZhYTM1MDdkYzMuLjcyNmIyODFhOTBmN2FiMjQyZTJkNzMzOWIyYzNhNDk4OTcy
NTlkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMjA4LDcgKzIw
OCw2IEBAIGlubGluZSB2b2lkIHhtbENhc2luZ1Rlc3RCdWlsdGluRnVuY3Rpb25zOjp2aXNpdChK
U0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQogCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
SW50cmluc2ljLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0
dXJlSW5saW5lcy5oPgpAQCAtMjE3LDIzICsyMTYsMjMgQEAgaW5saW5lIHZvaWQgeG1sQ2FzaW5n
VGVzdEJ1aWx0aW5GdW5jdGlvbnM6OnZpc2l0KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX3htbENh
c2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVj
dEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxD
YXNpbmdUZXN0Q29kZUxlbmd0aCA9IDcwOwotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2ljIHNf
eG1sQ2FzaW5nVGVzdFhNTENhc2luZ1Rlc3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJpbnNp
YzsKK2NvbnN0IGludCBzX3htbENhc2luZ1Rlc3RYTUxDYXNpbmdUZXN0Q29kZUxlbmd0aCA9IDcx
OwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0WE1MQ2FzaW5nVGVzdENvZGUgPQogICAgICIo
ZnVuY3Rpb24gKHN0cmVhbSlcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAgXCJ1c2Ugc3RyaWN0
XCI7XG4iIFwKKyAgICAiXG4iIFwKICAgICAiICAgIHJldHVybiAhIXN0cmVhbS5AcmVhZGVyO1xu
IiBcCiAgICAgIn0pXG4iIFwKIDsKIAogY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfeG1s
Q2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdENz
c0Nhc2luZ1Rlc3RDb2RlTGVuZ3RoID0gNDAxOwotc3RhdGljIGNvbnN0IEpTQzo6SW50cmluc2lj
IHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlSW50cmluc2ljID0gSlNDOjpOb0ludHJp
bnNpYzsKK2NvbnN0IGludCBzX3htbENhc2luZ1Rlc3RDc3NDYXNpbmdUZXN0Q29kZUxlbmd0aCA9
IDQwMjsKIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVzdENzc0Nhc2luZ1Rlc3RDb2RlID0KICAg
ICAiKGZ1bmN0aW9uIChzdHJlYW0sIHJlYXNvbilcbiIgXAogICAgICJ7XG4iIFwKICAgICAiICAg
IFwidXNlIHN0cmljdFwiO1xuIiBcCisgICAgIlxuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBz
dGF0ZSA9PT0gQHJlYWRhYmxlU3RyZWFtQ2xvc2VkKVxuIiBcCiAgICAgIiAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpO1xuIiBcCiAgICAgIiAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0g
QHJlYWRhYmxlU3RyZWFtRXJyb3JlZClcbiIgXApAQCAtMjQ1LDEyICsyNDQsMTIgQEAgY29uc3Qg
Y2hhciogc194bWxDYXNpbmdUZXN0Q3NzQ2FzaW5nVGVzdENvZGUgPQogOwogCiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVDb25zdHJ1
Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25z
dCBpbnQgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVMZW5ndGggPSAzMzc7Ci1zdGF0
aWMgY29uc3QgSlNDOjpJbnRyaW5zaWMgc194bWxDYXNpbmdUZXN0VXJsQ2FzaW5nVGVzdENvZGVJ
bnRyaW5zaWMgPSBKU0M6Ok5vSW50cmluc2ljOworY29uc3QgaW50IHNfeG1sQ2FzaW5nVGVzdFVy
bENhc2luZ1Rlc3RDb2RlTGVuZ3RoID0gMzM4OwogY29uc3QgY2hhciogc194bWxDYXNpbmdUZXN0
VXJsQ2FzaW5nVGVzdENvZGUgPQogICAgICIoZnVuY3Rpb24gKG9iamVjdCwga2V5LCBhcmdzKVxu
IiBcCiAgICAgIntcbiIgXAogICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKKyAgICAiXG4i
IFwKICAgICAiICAgIHRyeSB7XG4iIFwKICAgICAiICAgICAgICB2YXIgbWV0aG9kID0gb2JqZWN0
W2tleV07XG4iIFwKICAgICAiICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gXCJ1bmRlZmlu
ZWRcIilcbiIgXApAQCAtMjY5LDcgKzI2OCw3IEBAIGNvbnN0IGNoYXIqIHNfeG1sQ2FzaW5nVGVz
dFVybENhc2luZ1Rlc3RDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMj
R2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIEpTVk1DbGllbnREYXRhKiBjbGllbnRE
YXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsgXAotICAg
IHJldHVybiBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkueG1sQ2FzaW5nVGVzdEJ1aWx0
aW5zKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+YnVpbHRp
bkZ1bmN0aW9ucygpLnhtbENhc2luZ1Rlc3RCdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSwg
TnVsbG9wdCwgc18jI2NvZGVOYW1lIyNJbnRyaW5zaWMpOyBcCisgICAgcmV0dXJuIGNsaWVudERh
dGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS54bWxDYXNpbmdUZXN0QnVpbHRpbnMoKS5jb2RlTmFtZSMj
RXhlY3V0YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkueG1s
Q2FzaW5nVGVzdEJ1aWx0aW5zKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXAogfQogV0VCQ09SRV9G
T1JFQUNIX1hNTENBU0lOR1RFU1RfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRP
UikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKaW5kZXgg
Y2JhZmNiOGFjMzRlZDYwMjU0NWUwNDdlN2RiZjg0Zjk5ZjliMDc3YS4uNTY1OTVmNzE0MWU1NWY1
MWYyZTIwMDk1ZDY3ZTU4ZDhhZDk5MjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMKQEAgLTQxLDcgKzQx
LDYgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgcmV0dXJuIG5leHQuQGNhbGwodGhpcyk7CiB9CiAK
LUBnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yVmFsdWVOZXh0KCkKIHsKICAg
ICAidXNlIHN0cmljdCI7CkBAIC02NCw3ICs2Myw2IEBAIGZ1bmN0aW9uIGFycmF5SXRlcmF0b3JW
YWx1ZU5leHQoKQogICAgIHJldHVybiB7IGRvbmUsIHZhbHVlIH07CiB9CiAKLUBnbG9iYWxQcml2
YXRlCiBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3Qi
OwpAQCAtODcsNyArODUsNiBAQCBmdW5jdGlvbiBhcnJheUl0ZXJhdG9yS2V5TmV4dCgpCiAgICAg
cmV0dXJuIHsgZG9uZSwgdmFsdWUgfTsKIH0KIAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGFy
cmF5SXRlcmF0b3JLZXlWYWx1ZU5leHQoKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwppbmRleCBiNWQz
MjIyYmMyZmI5ZWNjYzBjMmFjMjBiYmE5MzI3YWZiMDY0ZTkxLi4wMzMzYzcxYjk3ZTJiOWM3NGYy
N2NmNmU5YWVlNjgzOGUyMzk0Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCkBAIC0yNSw3ICsyNSw2IEBACiAgKi8KIAogQGNvbnN0
cnVjdG9yCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gY3JlYXRlQXJyYXlJdGVyYXRvcihpdGVy
YXRlZE9iamVjdCwga2luZCwgaXRlcmF0aW9uRnVuY3Rpb24pCiB7CiAgICAgdGhpcy5AaXRlcmF0
ZWRPYmplY3QgPSBpdGVyYXRlZE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluTmFtZXMuaAppbmRleCAwYmJhMTA2MTU2MzJiYTBkN2RiMWU5Nzc1NGRjMzc4
NjFhZjY2YTNlLi5iNmY0ZTM4NjdmMmJjZWFiOTZkNjkzODA4Y2I0Njc3ODYyYTE2NDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxMzkg
KzI3LDExIEBACiAjZGVmaW5lIEJ1aWx0aW5OYW1lc19oCiAKICNpbmNsdWRlICJCdWlsdGluVXRp
bHMuaCIKLSNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKG1hY3JvKSBcCi0gICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNf
RlVOQ1RJT05TX0VBQ0hfTkFNRShtYWNybykgXAotICAgIEpTQ19DT01NT05fQllURUNPREVfSU5U
UklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKLSAgICBtYWNybyhpdGVyYXRlZE9i
amVjdCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0SW5kZXgpIFwKLSAgICBtYWNybyhh
cnJheUl0ZXJhdGlvbktpbmQpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dCkgXAotICAg
IG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yS2lu
ZCkgXAotICAgIG1hY3JvKGNoYXJDb2RlQXQpIFwKLSAgICBtYWNybyhpdGVyYXRlZFN0cmluZykg
XAotICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4KSBcCi0gICAgbWFjcm8ocHJvbWlz
ZSkgXAotICAgIG1hY3JvKGZ1bGZpbGxtZW50SGFuZGxlcikgXAotICAgIG1hY3JvKHJlamVjdGlv
bkhhbmRsZXIpIFwKLSAgICBtYWNybyhpbmRleCkgXAotICAgIG1hY3JvKGRlZmVycmVkKSBcCi0g
ICAgbWFjcm8oY291bnRkb3duSG9sZGVyKSBcCi0gICAgbWFjcm8oT2JqZWN0KSBcCi0gICAgbWFj
cm8ob3duRW51bWVyYWJsZVByb3BlcnR5S2V5cykgXAotICAgIG1hY3JvKE51bWJlcikgXAotICAg
IG1hY3JvKEFycmF5KSBcCi0gICAgbWFjcm8oU3RyaW5nKSBcCi0gICAgbWFjcm8oUmVnRXhwKSBc
Ci0gICAgbWFjcm8oTWFwKSBcCi0gICAgbWFjcm8oUHJvbWlzZSkgXAotICAgIG1hY3JvKFJlZmxl
Y3QpIFwKLSAgICBtYWNybyhJbnRlcm5hbFByb21pc2UpIFwKLSAgICBtYWNybyhhYnMpIFwKLSAg
ICBtYWNybyhmbG9vcikgXAotICAgIG1hY3JvKHRydW5jKSBcCi0gICAgbWFjcm8oaXNGaW5pdGUp
IFwKLSAgICBtYWNybyhpc05hTikgXAotICAgIG1hY3JvKGNyZWF0ZSkgXAotICAgIG1hY3JvKGRl
ZmluZVByb3BlcnR5KSBcCi0gICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKLSAgICBtYWNybyhn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKLSAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5hbWVz
KSBcCi0gICAgbWFjcm8ob3duS2V5cykgXAotICAgIG1hY3JvKEVycm9yKSBcCi0gICAgbWFjcm8o
UmFuZ2VFcnJvcikgXAotICAgIG1hY3JvKFR5cGVFcnJvcikgXAotICAgIG1hY3JvKHR5cGVkQXJy
YXlMZW5ndGgpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5U29ydCkgXAotICAgIG1hY3JvKHR5cGVk
QXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oQnVpbHRpbkxvZykgXAot
ICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKLSAgICBtYWNybyhnZXRUZW1wbGF0ZU9iamVjdCkgXAot
ICAgIG1hY3JvKGVucXVldWVKb2IpIFwKLSAgICBtYWNybyhoYW5kbGVyKSBcCi0gICAgbWFjcm8o
cHJvbWlzZVN0YXRlKSBcCi0gICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKLSAg
ICBtYWNybyhwcm9taXNlUmVqZWN0UmVhY3Rpb25zKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlc3Vs
dCkgXAotICAgIG1hY3JvKHB1c2gpIFwKLSAgICBtYWNybyhyZXBlYXRDaGFyYWN0ZXIpIFwKLSAg
ICBtYWNybyhjYXBhYmlsaXRpZXMpIFwKLSAgICBtYWNybyhzdGFyRGVmYXVsdCkgXAotICAgIG1h
Y3JvKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbikgXAotICAgIG1hY3JvKGdldCkgXAotICAgIG1h
Y3JvKHNldCkgXAotICAgIG1hY3JvKHNoaWZ0KSBcCi0gICAgbWFjcm8oYWxsb2NhdGVUeXBlZEFy
cmF5KSBcCi0gICAgbWFjcm8oSW50OEFycmF5KSBcCi0gICAgbWFjcm8oSW50MTZBcnJheSkgXAot
ICAgIG1hY3JvKEludDMyQXJyYXkpIFwKLSAgICBtYWNybyhVaW50OEFycmF5KSBcCi0gICAgbWFj
cm8oVWludDhDbGFtcGVkQXJyYXkpIFwKLSAgICBtYWNybyhVaW50MTZBcnJheSkgXAotICAgIG1h
Y3JvKFVpbnQzMkFycmF5KSBcCi0gICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCi0gICAgbWFjcm8o
RmxvYXQ2NEFycmF5KSBcCi0gICAgbWFjcm8oZXhlYykgXAotICAgIG1hY3JvKGdlbmVyYXRvcikg
XAotICAgIG1hY3JvKGdlbmVyYXRvck5leHQpIFwKLSAgICBtYWNybyhnZW5lcmF0b3JTdGF0ZSkg
XAotICAgIG1hY3JvKGdlbmVyYXRvckZyYW1lKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yVmFsdWUp
IFwKLSAgICBtYWNybyhnZW5lcmF0b3JUaGlzKSBcCi0gICAgbWFjcm8oZ2VuZXJhdG9yUmVzdW1l
TW9kZSkgXAotICAgIG1hY3JvKENvbGxhdG9yKSBcCi0gICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQp
IFwKLSAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKLSAgICBtYWNybyhpbnRsU3Vic3RpdHV0ZVZh
bHVlKSBcCi0gICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAotICAgIG1hY3JvKHRoaXNOdW1iZXJW
YWx1ZSkgXAotICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCi0gICAgbWFjcm8oZGVyaXZlZENv
bnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCi0gICAgbWFjcm8oaGFz
SW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCi0gICAgbWFjcm8oaW5zdGFuY2VPZikgXAotICAgIG1h
Y3JvKGlzQXJyYXkpIFwKLSAgICBtYWNybyhpc0FycmF5Q29uc3RydWN0b3IpIFwKLSAgICBtYWNy
byhpc0NvbnN0cnVjdG9yKSBcCi0gICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKLSAgICBtYWNy
byhjb25jYXRNZW1jcHkpIFwKLSAgICBtYWNybyhhcHBlbmRNZW1jcHkpIFwKLSAgICBtYWNybyhw
cmVkaWN0RmluYWxMZW5ndGhGcm9tQXJndW11bnRzKSBcCi0gICAgbWFjcm8ocHJpbnQpIFwKLSAg
ICBtYWNybyhpc1NldCkgXAotICAgIG1hY3JvKGlzTWFwKSBcCi0gICAgbWFjcm8ocmVnRXhwQ3Jl
YXRlKSBcCi0gICAgbWFjcm8oU2V0SXRlcmF0b3IpIFwKLSAgICBtYWNybyhzZXRJdGVyYXRvck5l
eHQpIFwKLSAgICBtYWNybyhyZXBsYWNlVXNpbmdSZWdFeHApIFwKLSAgICBtYWNybyhyZXBsYWNl
VXNpbmdTdHJpbmdTZWFyY2gpIFwKLSAgICBtYWNybyhNYXBJdGVyYXRvcikgXAotICAgIG1hY3Jv
KG1hcEl0ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKHJlZ0V4cEJ1aWx0aW5FeGVjKSBcCi0gICAg
bWFjcm8ocmVnRXhwTWF0Y2hGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9GbGFnc0dldHRl
cikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVn
RXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9NdWx0aWxp
bmVHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1NvdXJjZUdldHRlcikgXAotICAgIG1h
Y3JvKHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG9Vbmlj
b2RlR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSkgXAot
ICAgIG1hY3JvKHJlZ0V4cFJlcGxhY2VGYXN0KSBcCi0gICAgbWFjcm8ocmVnRXhwU2VhcmNoRmFz
dCkgXAotICAgIG1hY3JvKHJlZ0V4cFNwbGl0RmFzdCkgXAotICAgIG1hY3JvKHJlZ0V4cFRlc3RG
YXN0KSBcCi0gICAgbWFjcm8oc3RyaW5nSW5jbHVkZXNJbnRlcm5hbCkgXAotICAgIG1hY3JvKHN0
cmluZ1NwbGl0RmFzdCkgXAotICAgIG1hY3JvKHN0cmluZ1N1YnN0ckludGVybmFsKQotCi0KICNk
ZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVU
b1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsK
ICNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBtX3B1Ymxp
Y1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRv
clByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HZW5lcmF0b3JQ
cm90b3R5cGUuanMKaW5kZXggM2MxNDA2ODdkZmM3ZTAwZWZlOTFhZTgwYjJhYzY3NmZhOWJmNDhm
NC4uNjk0NjNjMzM2MDJlMjhmN2RkNDI5YWQyMzQ2ZGIxYTdlNWVlZGRlZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dlbmVyYXRvclByb3RvdHlwZS5qcworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2VuZXJhdG9yUHJvdG90eXBlLmpzCkBA
IC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNiw3ICsyNSw2IEBACiAKIC8vIDI1LjMuMy4zIEdlbmVyYXRvclJlc3VtZSAoIGdlbmVy
YXRvciwgdmFsdWUgKQogLy8gMjUuMy4zLjQgR2VuZXJhdG9yUmVzdW1lQWJydXB0KGdlbmVyYXRv
ciwgYWJydXB0Q29tcGxldGlvbikKLUBnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBnZW5lcmF0b3JS
ZXN1bWUoZ2VuZXJhdG9yLCBzZW50VmFsdWUsIHJlc3VtZU1vZGUpCiB7CiAgICAgInVzZSBzdHJp
Y3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9i
amVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMK
aW5kZXggNTc3NmEyMjk2YmFhYzhjNTQxMmI0Y2UzNWRmNzA4OTgwMzkwYzY5MS4uOGJhMzQ5MDhh
ZmE3OWJjMzYyMjJkYzllMTUzZTI4ZjI5MmMyMDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvR2xvYmFsT2JqZWN0LmpzCkBAIC0yNiw3ICsyNiw2IEBACiAKIC8vIEBp
bnRlcm5hbAogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gdG9JbnRlZ2VyKHRhcmdldCkKIHsK
ICAgICAidXNlIHN0cmljdCI7CkBAIC0zOSw3ICszOCw2IEBAIGZ1bmN0aW9uIHRvSW50ZWdlcih0
YXJnZXQpCiAgICAgcmV0dXJuIEB0cnVuYyhudW1iZXJWYWx1ZSk7CiB9CiAKLUBnbG9iYWxQcml2
YXRlCiBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAt
NTAsNyArNDgsNiBAQCBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAgICAgcmV0dXJuIGxlbmd0
aCA+IDAgPyAobGVuZ3RoIDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGggOiBtYXhTYWZlSW50ZWdl
cikgOiAwOwogfQogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNEaWN0aW9uYXJ5KG9iamVj
dCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC02MCwxMyArNTcsMTEgQEAgZnVuY3Rpb24gaXNE
aWN0aW9uYXJ5KG9iamVjdCkKIAogLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gaGF2ZSBpdCdzIG5h
bWUgY2hhbmdlZCB0byAiZ2V0IFtTeW1ib2wuc3BlY2llc10iLgogLy8gc2VlOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCi1AZ2xvYmFsUHJpdmF0ZQogZnVu
Y3Rpb24gc3BlY2llc0dldHRlcigpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLUBnbG9iYWxQ
cml2YXRlCiBmdW5jdGlvbiBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0
b3IpCiB7CiAgICAgdmFyIGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VPcGVyYXRpb25zLmpzCmluZGV4
IDE5MWRiM2Y2YWNmNTljNjg0YWMzMjZlMjdjM2UzZTkyZDYzYjA3OTguLmM0ZTU5YmIwNzkzYjll
MDBhZTdkOWEyNTE1YTNkZDJkMmI0YjEyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9Qcm9taXNlT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvUHJvbWlzZU9wZXJhdGlvbnMuanMKQEAgLTEsNiArMSw1IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNSw2IEBACiAKIC8v
IEBpbnRlcm5hbAogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gaXNQcm9taXNlKHByb21pc2Up
CiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMzQsNyArMzIsNiBAQCBmdW5jdGlvbiBpc1Byb21p
c2UocHJvbWlzZSkKICAgICByZXR1cm4gQGlzT2JqZWN0KHByb21pc2UpICYmICEhcHJvbWlzZS5A
cHJvbWlzZVN0YXRlOwogfQogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZVJl
YWN0aW9uKGNhcGFiaWxpdHksIGhhbmRsZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtNDUs
NyArNDIsNiBAQCBmdW5jdGlvbiBuZXdQcm9taXNlUmVhY3Rpb24oY2FwYWJpbGl0eSwgaGFuZGxl
cikKICAgICB9OwogfQogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gbmV3UHJvbWlzZUNhcGFi
aWxpdHkoY29uc3RydWN0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtODQsNyArODAsNiBA
QCBmdW5jdGlvbiBuZXdQcm9taXNlQ2FwYWJpbGl0eShjb25zdHJ1Y3RvcikKICAgICByZXR1cm4g
cHJvbWlzZUNhcGFiaWxpdHk7CiB9CiAKLUBnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiB0cmlnZ2Vy
UHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIGFyZ3VtZW50KQogewogICAgICJ1c2Ugc3RyaWN0
IjsKQEAgLTkzLDcgKzg4LDYgQEAgZnVuY3Rpb24gdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVh
Y3Rpb25zLCBhcmd1bWVudCkKICAgICAgICAgQGVucXVldWVKb2IoQHByb21pc2VSZWFjdGlvbkpv
YiwgW3JlYWN0aW9uc1tpbmRleF0sIGFyZ3VtZW50XSk7CiB9CiAKLUBnbG9iYWxQcml2YXRlCiBm
dW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKIHsKICAgICAidXNlIHN0cmlj
dCI7CkBAIC0xMDksNyArMTAzLDYgQEAgZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCBy
ZWFzb24pCiAgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsK
IH0KIAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHZh
bHVlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTEyNSw3ICsxMTgsNiBAQCBmdW5jdGlvbiBm
dWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlv
bnMocmVhY3Rpb25zLCB2YWx1ZSk7CiB9CiAKLUBnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBjcmVh
dGVSZXNvbHZpbmdGdW5jdGlvbnMocHJvbWlzZSkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0x
NzIsNyArMTY0LDYgQEAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zKHByb21pc2Up
CiAgICAgfTsKIH0KIAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpv
YihyZWFjdGlvbiwgYXJndW1lbnQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTg5LDcgKzE4
MCw2IEBAIGZ1bmN0aW9uIHByb21pc2VSZWFjdGlvbkpvYihyZWFjdGlvbiwgYXJndW1lbnQpCiAg
ICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHJl
c3VsdCk7CiB9CiAKLUBnbG9iYWxQcml2YXRlCiBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5h
YmxlSm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKQEAgLTIwMyw3ICsxOTMsNiBAQCBmdW5jdGlvbiBwcm9taXNlUmVzb2x2ZVRoZW5hYmxl
Sm9iKHByb21pc2VUb1Jlc29sdmUsIHRoZW5hYmxlLCB0aGVuKQogICAgIH0KIH0KIAotQGdsb2Jh
bFByaXZhdGUKIGZ1bmN0aW9uIGluaXRpYWxpemVQcm9taXNlKGV4ZWN1dG9yKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9S
ZWdFeHBQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhw
UHJvdG90eXBlLmpzCmluZGV4IDlkOTQ1YTRjZTM3MmNiYjNjOWY1MDNmMTJkYmZmMTRlYzFjNTU2
NjEuLjI5NTdmMTRjYjczOTgwZjI0NWY2ZDFjNzQ2ZGFmZjgxMjdlNDkyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMs
NyArMjMsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0
aW9uIGFkdmFuY2VTdHJpbmdJbmRleChzdHJpbmcsIGluZGV4LCB1bmljb2RlKQogewogICAgIC8v
IFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGlu
IEVTNiAyMS4yLjUuMi4zLgpAQCAtNDYsNyArNDUsNiBAQCBmdW5jdGlvbiBhZHZhbmNlU3RyaW5n
SW5kZXgoc3RyaW5nLCBpbmRleCwgdW5pY29kZSkKICAgICByZXR1cm4gaW5kZXggKyAyOwogfQog
Ci1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVnRXhwRXhlYyhyZWdleHAsIHN0cikKIHsKICAg
ICAidXNlIHN0cmljdCI7CkBAIC02Miw3ICs2MCw2IEBAIGZ1bmN0aW9uIHJlZ0V4cEV4ZWMocmVn
ZXhwLCBzdHIpCiAgICAgcmV0dXJuIGJ1aWx0aW5FeGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKIH0K
IAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJl
Z0V4cE1hdGNoKHJlZ2V4cCkgewogICAgIC8vIFRoaXMgaXMgYWNjZXNzZWQgYnkgdGhlIFJlZ0V4
cEV4ZWMgaW50ZXJuYWwgZnVuY3Rpb24uCiAgICAgbGV0IHJlZ2V4cEV4ZWMgPSBAdHJ5R2V0QnlJ
ZChyZWdleHAsICJleGVjIik7CkBAIC0zMjksNyArMzI2LDYgQEAgZnVuY3Rpb24gc2VhcmNoKHN0
ckFyZykKICAgICByZXR1cm4gcmVzdWx0LmluZGV4OwogfQogCi1AZ2xvYmFsUHJpdmF0ZQogZnVu
Y3Rpb24gaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQocmVnZXhwKSB7CiAg
ICAgLy8gVGhpcyBpcyBhY2Nlc3NlZCBieSB0aGUgUmVnRXhwRXhlYyBpbnRlcm5hbCBmdW5jdGlv
bi4KICAgICBsZXQgcmVnZXhwRXhlYyA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgImV4ZWMiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmlu
ZGV4IGVmYjg1N2I3M2IwZGQyNmJmNWY2YzdlZWU0OWI2NzIzMjg2NDI0NDQuLjg5NjUxMGMwNDRl
ZWU4ODUyOTBlNTVhYjA3ZmE5OTkzZmJiZDA2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtNDYsNyArNDYsNiBAQCBmdW5j
dGlvbiBtYXRjaChyZWdleHApCiAgICAgcmV0dXJuIGNyZWF0ZWRSZWdFeHAuQG1hdGNoU3ltYm9s
KHRoaXNTdHJpbmcpOwogfQogCi1AZ2xvYmFsUHJpdmF0ZQogZnVuY3Rpb24gcmVwZWF0U2xvd1Bh
dGgoc3RyaW5nLCBjb3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC04NSw3ICs4NCw3IEBA
IGZ1bmN0aW9uIHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpCiAgICAgfQogfQogCi1AZ2xv
YmFsUHJpdmF0ZQorCiBmdW5jdGlvbiByZXBlYXRDaGFyYWN0ZXJzU2xvd1BhdGgoc3RyaW5nLCBj
b3VudCkKIHsKICAgICAidXNlIHN0cmljdCI7CkBAIC0yMDMsNyArMjAyLDYgQEAgZnVuY3Rpb24g
cGFkRW5kKG1heExlbmd0aC8qLCBmaWxsU3RyaW5nKi8pCiAgICAgcmV0dXJuIHN0cmluZyArIHRy
dW5jYXRlZFN0cmluZ0ZpbGxlcjsKIH0KIAotQGdsb2JhbFByaXZhdGUKIGZ1bmN0aW9uIGhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UocmVnZXhwLCByZXBsYWNlcikgewog
ICAgIGlmIChyZXBsYWNlciAhPT0gQHJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UpCiAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4IDE5M2QyODlhYzdk
NzQ5MzY3MzA0MTY5ODlhZWNjZjY1NTMzMDI0OWEuLjQ5YmZmNDBjYTdhNjcyZGQ1ZDhlZWE4NmJk
ZWU4MGY5OWFjYjQ5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAgLTI2LDEwICsyNiw4
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJCeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5LmgiCi0KLSNpbmNsdWRlICJBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgiCi0jaW5jbHVk
ZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKKyNpbmNs
dWRlICJKU0FycmF5SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkpTR2VuZXJhdG9yRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIK
QEAgLTM4LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNkZWZpbmUgSU5JVElBTEla
RV9CWVRFQ09ERV9JTlRSSU5TSUNfTkFNRVNfVE9fU0VUKG5hbWUpIG1fYnl0ZWNvZGVJbnRyaW5z
aWNNYXAuYWRkKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm5hbWUjI1ByaXZhdGVO
YW1lKCkuaW1wbCgpLCAmQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY18jI25h
bWUpOworI2RlZmluZSBJTklUSUFMSVpFX0JZVEVDT0RFX0lOVFJJTlNJQ19OQU1FU19UT19TRVQo
bmFtZSkgbV9ieXRlY29kZUludHJpbnNpY01hcC5hZGQodm0ucHJvcGVydHlOYW1lcy0+bmFtZSMj
UHJpdmF0ZU5hbWUuaW1wbCgpLCAmQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNp
Y18jI25hbWUpOwogCiBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5KFZNJiB2bSkKICAgICA6IG1fdm0odm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDkx
ZjVjNzc0N2FkNjUwYmE1ZmQwM2MyNDlhM2U1ZDUwYWNhMTlhNDIuLjM5OWMyZTg1NGIzNGU4OGEy
OGQ4MmQzMjUxNzU3ZDFhN2M0ZThkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC05MTAsMTIgKzkx
MCwxMiBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNv
bnRleHRTY29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogCiAgICAgICAgIGlmIChtX2NvZGVUeXBl
ID09IEZ1bmN0aW9uQ29kZSAmJiBpc05ld1RhcmdldFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigp
KSB7CiAgICAgICAgICAgICBvZmZzZXQgPSBmdW5jdGlvblN5bWJvbFRhYmxlLT50YWtlTmV4dFNj
b3BlT2Zmc2V0KCk7Ci0gICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRhYmxlLT5zZXQoTm9Mb2Nr
aW5nTmVjZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9j
YWxQcml2YXRlTmFtZSgpLmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeShWYXJPZmZzZXQob2Zmc2V0
KSkpOworICAgICAgICAgICAgZnVuY3Rpb25TeW1ib2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vz
c2FyeSwgcHJvcGVydHlOYW1lcygpLm5ld1RhcmdldExvY2FsUHJpdmF0ZU5hbWUuaW1wbCgpLCBT
eW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29u
c3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24o
KSkgewogICAgICAgICAgICAgb2Zmc2V0ID0gZnVuY3Rpb25TeW1ib2xUYWJsZS0+dGFrZU5leHRT
Y29wZU9mZnNldChOb0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICAgICAgZnVuY3Rpb25TeW1i
b2xUYWJsZS0+c2V0KE5vTG9ja2luZ05lY2Vzc2FyeSwgcHJvcGVydHlOYW1lcygpLmJ1aWx0aW5O
YW1lcygpLmRlcml2ZWRDb25zdHJ1Y3RvclByaXZhdGVOYW1lKCkuaW1wbCgpLCBTeW1ib2xUYWJs
ZUVudHJ5KFZhck9mZnNldChvZmZzZXQpKSk7CisgICAgICAgICAgICBmdW5jdGlvblN5bWJvbFRh
YmxlLT5zZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0
cnVjdG9yUHJpdmF0ZU5hbWUuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KFZhck9mZnNldChvZmZz
ZXQpKSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm47CkBAIC05MzAsMTMgKzkzMCwxMyBA
QCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQXJyb3dGdW5jdGlvbkNvbnRleHRT
Y29wZUlmTmVlZGVkKFN5bWJvbFRhYmxlKgogICAgIH0KICAgICAKICAgICBpZiAobV9jb2RlVHlw
ZSA9PSBGdW5jdGlvbkNvZGUgJiYgaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24o
KSkgewotICAgICAgICBhdXRvIGFkZFRhcmdldCA9IGVudmlyb25tZW50LmFkZChwcm9wZXJ0eU5h
bWVzKCkuYnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKTsKKyAgICAg
ICAgYXV0byBhZGRUYXJnZXQgPSBlbnZpcm9ubWVudC5hZGQocHJvcGVydHlOYW1lcygpLm5ld1Rh
cmdldExvY2FsUHJpdmF0ZU5hbWUpOwogICAgICAgICBhZGRUYXJnZXQuaXRlcmF0b3ItPnZhbHVl
LnNldElzQ2FwdHVyZWQoKTsKICAgICAgICAgYWRkVGFyZ2V0Lml0ZXJhdG9yLT52YWx1ZS5zZXRJ
c0xldCgpOwogICAgIH0KIAogICAgIGlmIChpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JL
aW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGlzU3VwZXJVc2VkSW5Jbm5lckFy
cm93RnVuY3Rpb24oKSkgewotICAgICAgICBhdXRvIGRlcml2ZWRDb25zdHJ1Y3RvciA9IGVudmly
b25tZW50LmFkZChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVyaXZlZENvbnN0cnVj
dG9yUHJpdmF0ZU5hbWUoKSk7CisgICAgICAgIGF1dG8gZGVyaXZlZENvbnN0cnVjdG9yID0gZW52
aXJvbm1lbnQuYWRkKHByb3BlcnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFt
ZSk7CiAgICAgICAgIGRlcml2ZWRDb25zdHJ1Y3Rvci5pdGVyYXRvci0+dmFsdWUuc2V0SXNDYXB0
dXJlZCgpOwogICAgICAgICBkZXJpdmVkQ29uc3RydWN0b3IuaXRlcmF0b3ItPnZhbHVlLnNldElz
TGV0KCk7CiAgICAgfQpAQCAtMjk3Nyw5ICsyOTc3LDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDYWxsRXZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMs
IEMKIAogRXhwZWN0ZWRGdW5jdGlvbiBCeXRlY29kZUdlbmVyYXRvcjo6ZXhwZWN0ZWRGdW5jdGlv
bkZvcklkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICBpZiAo
aWRlbnRpZmllciA9PSBwcm9wZXJ0eU5hbWVzKCkuT2JqZWN0IHx8IGlkZW50aWZpZXIgPT0gcHJv
cGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLk9iamVjdFByaXZhdGVOYW1lKCkpCisgICAgaWYg
KGlkZW50aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0IHx8IGlkZW50aWZpZXIg
PT0gbV92bS0+cHJvcGVydHlOYW1lcy0+T2JqZWN0UHJpdmF0ZU5hbWUpCiAgICAgICAgIHJldHVy
biBFeHBlY3RPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICBpZiAoaWRlbnRpZmllciA9PSBwcm9wZXJ0
eU5hbWVzKCkuQXJyYXkgfHwgaWRlbnRpZmllciA9PSBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5h
bWVzKCkuQXJyYXlQcml2YXRlTmFtZSgpKQorICAgIGlmIChpZGVudGlmaWVyID09IG1fdm0tPnBy
b3BlcnR5TmFtZXMtPkFycmF5IHx8IGlkZW50aWZpZXIgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+
QXJyYXlQcml2YXRlTmFtZSkKICAgICAgICAgcmV0dXJuIEV4cGVjdEFycmF5Q29uc3RydWN0b3I7
CiAgICAgcmV0dXJuIE5vRXhwZWN0ZWRGdW5jdGlvbjsKIH0KQEAgLTQwNDUsNyArNDA0NSw3IEBA
IFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVn
aXN0ZXJJRCogZHN0LCBUYWdnZWRUZW1wCiAgICAgfQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGdldFRlbXBsYXRlT2JqZWN0ID0gbnVsbHB0cjsKLSAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJs
ZShwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2V0VGVtcGxhdGVPYmplY3RQcml2YXRl
TmFtZSgpKTsKKyAgICBWYXJpYWJsZSB2YXIgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZ2V0
VGVtcGxhdGVPYmplY3RQcml2YXRlTmFtZSk7CiAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0g
dmFyLmxvY2FsKCkpCiAgICAgICAgIGdldFRlbXBsYXRlT2JqZWN0ID0gZW1pdE1vdmUobmV3VGVt
cG9yYXJ5KCksIGxvY2FsKTsKICAgICBlbHNlIHsKQEAgLTQyMzUsMTYgKzQyMzUsMTYgQEAgdm9p
ZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdExvYWRUaGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2Fs
RW52aXJvbm1lbnQoKQogICAgIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRM
b2FkTmV3VGFyZ2V0RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKQogewotICAg
IFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVOYW1lKCkpOworICAgIFZhcmlhYmxlIG5ld1Rh
cmdldFZhciA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZhdGVO
YW1lKTsKIAotICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIs
IGVtaXRMb2FkQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCku
YnVpbHRpbk5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSgpKSwgbmV3VGFyZ2V0VmFy
LCBUaHJvd0lmTm90Rm91bmQpOworICAgIHJldHVybiBlbWl0R2V0RnJvbVNjb3BlKG1fbmV3VGFy
Z2V0UmVnaXN0ZXIsIGVtaXRMb2FkQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9w
ZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSksIG5ld1RhcmdldFZhciwgVGhy
b3dJZk5vdEZvdW5kKTsKICAgICAKIH0KIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJv
bm1lbnQoKQogewotICAgIFZhcmlhYmxlIHByb3RvU2NvcGVWYXIgPSB2YXJpYWJsZShwcm9wZXJ0
eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSk7
Ci0gICAgcmV0dXJuIGVtaXRHZXRGcm9tU2NvcGUobmV3VGVtcG9yYXJ5KCksIGVtaXRMb2FkQXJy
b3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVz
KCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSksIHByb3RvU2NvcGVWYXIsIFRocm93
SWZOb3RGb3VuZCk7CisgICAgVmFyaWFibGUgcHJvdG9TY29wZVZhciA9IHZhcmlhYmxlKHByb3Bl
cnR5TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSk7CisgICAgcmV0dXJuIGVt
aXRHZXRGcm9tU2NvcGUobmV3VGVtcG9yYXJ5KCksIGVtaXRMb2FkQXJyb3dGdW5jdGlvbkxleGlj
YWxFbnZpcm9ubWVudChwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0cnVjdG9yUHJpdmF0ZU5h
bWUpLCBwcm90b1Njb3BlVmFyLCBUaHJvd0lmTm90Rm91bmQpOwogfQogCiBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW5zdXJlVGhpcygpCkBAIC00Mjg4LDcgKzQyODgsNyBAQCB2b2lk
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4
dFNjb3BlKCkKICAgICBpZiAoaXNOZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkg
ewogICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVu
dFJlZ2lzdGVyKTsKICAgICAgICAgCi0gICAgICAgIFZhcmlhYmxlIG5ld1RhcmdldFZhciA9IHZh
cmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5uZXdUYXJnZXRMb2NhbFByaXZh
dGVOYW1lKCkpOworICAgICAgICBWYXJpYWJsZSBuZXdUYXJnZXRWYXIgPSB2YXJpYWJsZShwcm9w
ZXJ0eU5hbWVzKCkubmV3VGFyZ2V0TG9jYWxQcml2YXRlTmFtZSk7CiAgICAgICAgIGVtaXRQdXRU
b1Njb3BlKG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlciwg
bmV3VGFyZ2V0VmFyLCBuZXdUYXJnZXQoKSwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxp
emF0aW9uTW9kZTo6SW5pdGlhbGl6YXRpb24pOwogICAgIH0KIH0KQEAgLTQyOTksNyArNDI5OSw3
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXREZXJpdmVkQ29uc3RydWN0b3JUb0Fy
cm93RnVuY3Rpb25Db250ZXh0U2NvcGUoKQogICAgICAgICBpZiAoaXNTdXBlclVzZWRJbklubmVy
QXJyb3dGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBBU1NFUlQobV9hcnJvd0Z1bmN0aW9uQ29u
dGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyKTsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgVmFyaWFibGUgcHJvdG9TY29wZSA9IHZhcmlhYmxlKHByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5kZXJpdmVkQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpKTsKKyAgICAgICAgICAgIFZh
cmlhYmxlIHByb3RvU2NvcGUgPSB2YXJpYWJsZShwcm9wZXJ0eU5hbWVzKCkuZGVyaXZlZENvbnN0
cnVjdG9yUHJpdmF0ZU5hbWUpOwogICAgICAgICAgICAgZW1pdFB1dFRvU2NvcGUobV9hcnJvd0Z1
bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyLCBwcm90b1Njb3BlLCAmbV9j
YWxsZWVSZWdpc3RlciwgRG9Ob3RUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6
SW5pdGlhbGl6YXRpb24pOwogICAgICAgICB9CiAgICAgfQpAQCAtNDU2NCw3ICs0NTY0LDcgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREZWxlZ2F0ZVlpZWxkKFJlZ2lzdGVy
SUQqIGFyZ3VtZW50LCBUaHJvd2FibGUKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZW5l
cmF0b3JTdGF0ZUNoYW5nZShpbnQzMl90IHN0YXRlKQogewogICAgIFJlZ2lzdGVySUQqIGNvbXBs
ZXRlZFN0YXRlID0gZW1pdExvYWQobnVsbHB0ciwganNOdW1iZXIoc3RhdGUpKTsKLSAgICBlbWl0
UHV0QnlJZChnZW5lcmF0b3JSZWdpc3RlcigpLCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVz
KCkuZ2VuZXJhdG9yU3RhdGVQcml2YXRlTmFtZSgpLCBjb21wbGV0ZWRTdGF0ZSk7CisgICAgZW1p
dFB1dEJ5SWQoZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgcHJvcGVydHlOYW1lcygpLmdlbmVyYXRvclN0
YXRlUHJpdmF0ZU5hbWUsIGNvbXBsZXRlZFN0YXRlKTsKIH0KIAogdm9pZCBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEdlbmVyYXRvclN0YXRlTGFiZWwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGI2ZDBhMzcyYmI5YjZj
YmE1YTI4YjZkYjJmYWFkNjY2MjcwYTZiYTQuLjIzYzAyNmJmMmNjNTliZWFmMWE2NTUwMmE3Zjdk
OWM1ZGZjMThmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MSwxMiArMTYxLDEyIEBAIHN0YXRpYyBSZWdpc3Rl
cklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
KQogewogICAgIGlmIChnZW5lcmF0b3IuaXNEZXJpdmVkQ2xhc3NDb250ZXh0KCkgfHwgZ2VuZXJh
dG9yLmlzRGVyaXZlZENvbnN0cnVjdG9yQ29udGV4dCgpKSB7CiAgICAgICAgIFJlZ2lzdGVySUQq
IGRlcml2ZWRDb25zdHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3Rv
ckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCk7Ci0gICAgICAgIHJldHVybiBn
ZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBkZXJpdmVkQ29u
c3RydWN0b3IsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuaG9tZU9i
amVjdFByaXZhdGVOYW1lKCkpOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlk
KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgZGVyaXZlZENvbnN0cnVjdG9yLCBnZW5lcmF0b3Iu
cHJvcGVydHlOYW1lcygpLmhvbWVPYmplY3RQcml2YXRlTmFtZSk7CiAgICAgfQogCiAgICAgUmVn
aXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KEpTU3RhY2s6OkNhbGxlZSk7Ci0g
ICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCks
ICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuaG9tZU9i
amVjdFByaXZhdGVOYW1lKCkpOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAmY2FsbGVlLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygp
LmhvbWVPYmplY3RQcml2YXRlTmFtZSk7CiB9CiAKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3Vw
ZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCkBAIC00NTcsNyAr
NDU3LDcgQEAgUmVnaXN0ZXJJRCogT2JqZWN0TGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3QKIAogc3RhdGljIGlubGluZSB2b2lkIGVt
aXRQdXRIb21lT2JqZWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGZ1bmN0aW9uLCBSZWdpc3RlcklEKiBob21lT2JqZWN0KQogewotICAgIGdlbmVyYXRvci5lbWl0
UHV0QnlJZChmdW5jdGlvbiwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMo
KS5ob21lT2JqZWN0UHJpdmF0ZU5hbWUoKSwgaG9tZU9iamVjdCk7CisgICAgZ2VuZXJhdG9yLmVt
aXRQdXRCeUlkKGZ1bmN0aW9uLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmhvbWVPYmplY3RQ
cml2YXRlTmFtZSwgaG9tZU9iamVjdCk7CiB9CiAKIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiBkc3QpCkBAIC0zMjgyLDE0ICszMjgyLDE0IEBAIHZvaWQgRnVuY3Rpb25Ob2RlOjplbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCiAgICAgICAg
IC8vIEJ1dCB0byBtYWtlIGl0IGVmZmljaWVudCwgd2Ugd2lsbCBpbnRyb2R1Y2UgSlNHZW5lcmF0
b3IgY2xhc3MsIGFkZCBvcGNvZGUgbmV3X2dlbmVyYXRvciBhbmQgdXNlIGl0cyBDKysgZmllbGRz
IGluc3RlYWQgb2YgdGhlc2UgcHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTQ1CiAKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5l
cmF0b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRl
TmFtZSgpLCBuZXh0LmdldCgpLCBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKKyAgICAgICAg
Z2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3Rlcigp
LCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmdlbmVyYXRvck5leHRQcml2YXRlTmFtZSwgbmV4
dC5nZXQoKSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKLSAgICAgICAgZ2VuZXJhdG9y
LmVtaXREaXJlY3RQdXRCeUlkKGdlbmVyYXRvci5nZW5lcmF0b3JSZWdpc3RlcigpLCBnZW5lcmF0
b3IucHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclRoaXNQcml2YXRlTmFt
ZSgpLCBnZW5lcmF0b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3Qp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdlbmVyYXRv
clJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yVGhpc1ByaXZh
dGVOYW1lLCBnZW5lcmF0b3IudGhpc1JlZ2lzdGVyKCksIFByb3BlcnR5Tm9kZTo6S25vd25EaXJl
Y3QpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGluaXRpYWxTdGF0ZSA9IGdlbmVyYXRvci5lbWl0
TG9hZChudWxscHRyLCBqc051bWJlcigwKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0
UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3BlcnR5
TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIGluaXRp
YWxTdGF0ZSwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0RGlyZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9y
LnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lLCBpbml0aWFsU3RhdGUs
IFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0RGly
ZWN0UHV0QnlJZChnZW5lcmF0b3IuZ2VuZXJhdG9yUmVnaXN0ZXIoKSwgZ2VuZXJhdG9yLnByb3Bl
cnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCksIGdl
bmVyYXRvci5lbWl0TG9hZChudWxscHRyLCBqc051bGwoKSksIFByb3BlcnR5Tm9kZTo6S25vd25E
aXJlY3QpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQoZ2VuZXJhdG9yLmdl
bmVyYXRvclJlZ2lzdGVyKCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkuZ2VuZXJhdG9yRnJh
bWVQcml2YXRlTmFtZSwgZ2VuZXJhdG9yLmVtaXRMb2FkKG51bGxwdHIsIGpzTnVsbCgpKSwgUHJv
cGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAKICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0KCkg
Pj0gbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhX
aWxsTGVhdmVDYWxsRnJhbWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9m
ZnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmlu
ZGV4IGRmMmM5NjIwMDFiNDc5NzhjMjA3M2VmMDMwOWIwODM0OWMwMWYxM2EuLmNjYjAxOTY3NGUz
MDAzYmZlZjc0YzMzOGY2YmMwMWMxM2M4ZTIxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIkpJVC5o
IgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0j
aW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSAiUmVwYXRjaC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCA0YTdkNTky
NDQ1YTNiYTk4MzM2MGIyMzA4ZWZmMWFiODI0OThjYTFmLi4wZWVmODlhNjQ3NGEwNzNkZmJlMWJm
NDY3MDcxMjVhOTliNGYyOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSXRlcmF0
b3JPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJyYXlJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkBAIC0xNzUsNyArMTc2LDggQEAgSlNW
YWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
aWYgKHZhbHVlLmluaGVyaXRzKEpTV2Vha1NldDo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIGpz
Tm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWtzZXQiKSk7CiAKLSAgICBp
ZiAodmFsdWUuaW5oZXJpdHMoSlNNYXBJdGVyYXRvcjo6aW5mbygpKQorICAgIGlmICh2YWx1ZS5p
bmhlcml0cyhKU0FycmF5SXRlcmF0b3I6OmluZm8oKSkKKyAgICAgICAgfHwgdmFsdWUuaW5oZXJp
dHMoSlNNYXBJdGVyYXRvcjo6aW5mbygpKQogICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyhKU1Nl
dEl0ZXJhdG9yOjppbmZvKCkpCiAgICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKEpTU3RyaW5nSXRl
cmF0b3I6OmluZm8oKSkKICAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHMoSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvcjo6aW5mbygpKSkKQEAgLTMxNyw2ICszMTksMjggQEAgSlNWYWx1ZSBKU0luamVjdGVk
U2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgfQogICAgIH0KIAorICAgIGlmIChKU0FycmF5SXRlcmF0b3IqIGFycmF5SXRlcmF0b3IgPSBq
c0R5bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KHZhbHVlKSkgeworICAgICAgICBTdHJpbmcg
a2luZDsKKyAgICAgICAgc3dpdGNoIChhcnJheUl0ZXJhdG9yLT5raW5kKGV4ZWMpKSB7CisgICAg
ICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5OgorICAgICAgICAgICAga2luZCA9IEFTQ0lJTGl0ZXJh
bCgia2V5Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVW
YWx1ZToKKyAgICAgICAgICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoInZhbHVlIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcnJheUl0ZXJhdGVLZXlWYWx1ZToKKyAgICAgICAg
ICAgIGtpbmQgPSBBU0NJSUxpdGVyYWwoImtleSt2YWx1ZSIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgICBKU0FycmF5
KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgMik7CisgICAgICAg
IGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKyAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGNv
bnN0cnVjdEludGVybmFsUHJvcGVydHkoZXhlYywgImFycmF5IiwgYXJyYXlJdGVyYXRvci0+aXRl
cmF0ZWRWYWx1ZShleGVjKSkpOworICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywg
aW5kZXgrKywgY29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJp
dmlhbFN0cmluZyhleGVjLCBraW5kKSkpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQor
CiAgICAgaWYgKEpTTWFwSXRlcmF0b3IqIG1hcEl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU01h
cEl0ZXJhdG9yKj4odmFsdWUpKSB7CiAgICAgICAgIFN0cmluZyBraW5kOwogICAgICAgICBzd2l0
Y2ggKG1hcEl0ZXJhdG9yLT5raW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5jcHAKaW5kZXggM2M5NTllNGZhYzA1Y2FhOWYyNWIyYTVjNzc2YzFmNTU0OTY3YWEyMy4uZDY3
ZGY5NDc4MTMyMzI5ZDg4NmQ1M2MzNzI4ZGE2Y2VkOTQ2OGQ2NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAo
QykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA2LTIwMDksIDIwMTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExLCAy
MDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQg
KEMpIDIwMDcgQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENv
cHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1
KQogICogIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJl
KQpAQCAtOTM5LDcgKzkzOSw3IEBAIHRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZp
ZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwCiAgICAgICAgICAg
ICBpZiAoaXNQcml2YXRlTmFtZSkKICAgICAgICAgICAgICAgICBpZGVudCA9IG1fdm0tPnByb3Bl
cnR5TmFtZXMtPmxvb2tVcFByaXZhdGVOYW1lKCppZGVudCk7CiAgICAgICAgICAgICBlbHNlIGlm
ICgqaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCkKLSAgICAg
ICAgICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnVuZGVmaW5lZFByaXZhdGVOYW1lKCk7CisgICAgICAgICAgICAgICAgdG9rZW5E
YXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsK
ICAgICAgICAgICAgIGlmICghaWRlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSURf
UFJJVkFURV9OQU1FX0VSUk9SVE9LOwogICAgICAgICB9CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCB0
ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9r
ZW5UeXBlIExleGVyPFVDaGFyPjo6cAogICAgICAgICAgICAgaWYgKGlzUHJpdmF0ZU5hbWUpCiAg
ICAgICAgICAgICAgICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5sb29rVXBQcml2YXRl
TmFtZSgqaWRlbnQpOwogICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3Bl
cnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQpCi0gICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5p
ZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS51bmRlZmluZWRQcml2
YXRlTmFtZSgpOworICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJv
cGVydHlOYW1lcy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWU7CiAgICAgICAgICAgICBpZiAoIWlkZW50
KQogICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGM4MTE2NDA4
YjEwYjVmMGNlZjI1ZDU1YjkwMDhiZGQ3OTI5MWQzMTAuLjdkODUxY2VhY2EyZWFhZDk3ZGM2NDFj
MjQxZjRiNWEwYzcyM2FiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgTm9kZXNfaAogI2RlZmluZSBOb2Rlc19oCiAKLSNpbmNs
dWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpJVENv
ZGUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcAppbmRleCBiNmM4Nzc5MGYyNTAxY2U3NDlmYjg0ZGM0OGViYTliMmU3MGRhNDAzLi40
NTc1NzQxN2Y5NWU5NjU2ODBkODFkMDlkOWY4YWEwYjkxMzZhZmQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xODk3LDIzICsxODk3LDIzIEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZvcm1hbFBhcmFtZXRl
ckxpc3QgUGFyc2VyPExlCiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb24gPSB0b2tlblN0YXJ0
UG9zaXRpb24oKTsKIAogICAgIC8vIEBnZW5lcmF0b3IKLSAgICBkZWNsYXJlUGFyYW1ldGVyKCZt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2YXRlTmFtZSgp
KTsKLSAgICBhdXRvIGdlbmVyYXRvciA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxv
Y2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JQcml2
YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJh
dGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1l
cy0+Z2VuZXJhdG9yUHJpdmF0ZU5hbWUpOworICAgIGF1dG8gZ2VuZXJhdG9yID0gY29udGV4dC5j
cmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVy
YXRvclByaXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpE
ZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1l
dGVycywgZ2VuZXJhdG9yLCAwKTsKIAogICAgIC8vIEBnZW5lcmF0b3JTdGF0ZQotICAgIGRlY2xh
cmVQYXJhbWV0ZXIoJm1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRv
clN0YXRlUHJpdmF0ZU5hbWUoKSk7Ci0gICAgYXV0byBnZW5lcmF0b3JTdGF0ZSA9IGNvbnRleHQu
Y3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1lKCksIHBvc2l0aW9uLCBwb3NpdGlv
biwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50KTsKKyAgICBkZWNsYXJl
UGFyYW1ldGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JTdGF0ZVByaXZhdGVOYW1l
KTsKKyAgICBhdXRvIGdlbmVyYXRvclN0YXRlID0gY29udGV4dC5jcmVhdGVCaW5kaW5nTG9jYXRp
b24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmdlbmVyYXRvclN0YXRlUHJpdmF0ZU5h
bWUsIHBvc2l0aW9uLCBwb3NpdGlvbiwgQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3Rh
dGVtZW50KTsKICAgICBjb250ZXh0LmFwcGVuZFBhcmFtZXRlcihwYXJhbWV0ZXJzLCBnZW5lcmF0
b3JTdGF0ZSwgMCk7CiAKICAgICAvLyBAZ2VuZXJhdG9yVmFsdWUKLSAgICBkZWNsYXJlUGFyYW1l
dGVyKCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JWYWx1ZVBy
aXZhdGVOYW1lKCkpOwotICAgIGF1dG8gZ2VuZXJhdG9yVmFsdWUgPSBjb250ZXh0LmNyZWF0ZUJp
bmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZ2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2ln
bm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgZGVjbGFyZVBhcmFtZXRl
cigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yVmFsdWVQcml2YXRlTmFtZSk7CisgICAg
YXV0byBnZW5lcmF0b3JWYWx1ZSA9IGNvbnRleHQuY3JlYXRlQmluZGluZ0xvY2F0aW9uKGxvY2F0
aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZW5lcmF0b3JWYWx1ZVByaXZhdGVOYW1lLCBwb3Np
dGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7
CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIocGFyYW1ldGVycywgZ2VuZXJhdG9yVmFsdWUs
IDApOwogCiAgICAgLy8gQGdlbmVyYXRvclJlc3VtZU1vZGUKLSAgICBkZWNsYXJlUGFyYW1ldGVy
KCZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5lcmF0b3JSZXN1bWVNb2Rl
UHJpdmF0ZU5hbWUoKSk7Ci0gICAgYXV0byBnZW5lcmF0b3JSZXN1bWVNb2RlID0gY29udGV4dC5j
cmVhdGVCaW5kaW5nTG9jYXRpb24obG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZU1vZGVQcml2YXRlTmFtZSgpLCBwb3NpdGlvbiwgcG9z
aXRpb24sIEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CisgICAgZGVj
bGFyZVBhcmFtZXRlcigmbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9yUmVzdW1lTW9kZVBy
aXZhdGVOYW1lKTsKKyAgICBhdXRvIGdlbmVyYXRvclJlc3VtZU1vZGUgPSBjb250ZXh0LmNyZWF0
ZUJpbmRpbmdMb2NhdGlvbihsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+Z2VuZXJhdG9y
UmVzdW1lTW9kZVByaXZhdGVOYW1lLCBwb3NpdGlvbiwgcG9zaXRpb24sIEFzc2lnbm1lbnRDb250
ZXh0OjpEZWNsYXJhdGlvblN0YXRlbWVudCk7CiAgICAgY29udGV4dC5hcHBlbmRQYXJhbWV0ZXIo
cGFyYW1ldGVycywgZ2VuZXJhdG9yUmVzdW1lTW9kZSwgMCk7CiAKICAgICByZXR1cm4gcGFyYW1l
dGVyczsKQEAgLTI4NzEsMTUgKzI4NzEsMTUgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cG9ydERlY2xhcmEKICAg
ICAgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUFzc2lnbm1lbnRFeHBy
ZXNzaW9uKGNvbnRleHQpOwogICAgICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNh
bm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAKLSAgICAgICAgICAgIERlY2xhcmF0aW9uUmVzdWx0
TWFzayBkZWNsYXJhdGlvblJlc3VsdCA9IGRlY2xhcmVWYXJpYWJsZSgmbV92bS0+cHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RhckRlZmF1bHRQcml2YXRlTmFtZSgpLCBEZWNsYXJhdGlv
blR5cGU6OkNvbnN0RGVjbGFyYXRpb24pOworICAgICAgICAgICAgRGVjbGFyYXRpb25SZXN1bHRN
YXNrIGRlY2xhcmF0aW9uUmVzdWx0ID0gZGVjbGFyZVZhcmlhYmxlKCZtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5zdGFyRGVmYXVsdFByaXZhdGVOYW1lLCBEZWNsYXJhdGlvblR5cGU6OkNvbnN0RGVjbGFy
YXRpb24pOwogICAgICAgICAgICAgaWYgKGRlY2xhcmF0aW9uUmVzdWx0ICYgRGVjbGFyYXRpb25S
ZXN1bHQ6OkludmFsaWREdXBsaWNhdGVEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAgICBpbnRl
cm5hbEZhaWxXaXRoTWVzc2FnZShmYWxzZSwgIk9ubHkgb25lICdkZWZhdWx0JyBleHBvcnQgaXMg
YWxsb3dlZCIpOwogCi0gICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50ID0gY29u
dGV4dC5jcmVhdGVBc3NpZ25SZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5zdGFyRGVmYXVsdFByaXZhdGVOYW1lKCksIGV4cHJlc3Npb24sIHN0YXJ0
LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpLCBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNs
YXJhdGlvblN0YXRlbWVudCk7CisgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBhc3NpZ25tZW50
ID0gY29udGV4dC5jcmVhdGVBc3NpZ25SZXNvbHZlKGxvY2F0aW9uLCBtX3ZtLT5wcm9wZXJ0eU5h
bWVzLT5zdGFyRGVmYXVsdFByaXZhdGVOYW1lLCBleHByZXNzaW9uLCBzdGFydCwgc3RhcnQsIHRv
a2VuRW5kUG9zaXRpb24oKSwgQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0
ZW1lbnQpOwogICAgICAgICAgICAgcmVzdWx0ID0gY29udGV4dC5jcmVhdGVFeHByU3RhdGVtZW50
KGxvY2F0aW9uLCBhc3NpZ25tZW50LCBzdGFydCwgdG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAg
ICAgICAgIGlmICghaXNGdW5jdGlvbk9yQ2xhc3NEZWNsYXJhdGlvbikKICAgICAgICAgICAgICAg
ICBmYWlsSWZGYWxzZShhdXRvU2VtaUNvbG9uKCksICJFeHBlY3RlZCBhICc7JyBmb2xsb3dpbmcg
YSB0YXJnZXRlZCBleHBvcnQgZGVjbGFyYXRpb24iKTsKLSAgICAgICAgICAgIGxvY2FsTmFtZSA9
ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFyRGVmYXVsdFByaXZhdGVO
YW1lKCk7CisgICAgICAgICAgICBsb2NhbE5hbWUgPSAmbV92bS0+cHJvcGVydHlOYW1lcy0+c3Rh
ckRlZmF1bHRQcml2YXRlTmFtZTsKICAgICAgICAgfQogICAgICAgICBmYWlsSWZGYWxzZShyZXN1
bHQsICJDYW5ub3QgcGFyc2UgdGhlIGRlY2xhcmF0aW9uIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5k
ZXggODg5NTdlMWM0N2YyOGRlMjUxMDE0NTJlNmE1MDZjMzYzNTM0MTRjNS4uMDFiMTAwNGZmMTVh
NzAwYWFhY2NjM2Q5MDcwMWUzMTMwNzBiMjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgiCiAjaW5j
bHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtMzcsNiArMzgsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAorCiBjb25zdCBDbGFzc0luZm8gQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6c19p
bmZvID0geyAiQXJyYXkgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCAmYXJyYXlJdGVyYXRvclBy
b3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFycmF5SXRlcmF0b3JQcm90b3R5cGUp
IH07CiAKIC8qIFNvdXJjZSBmb3IgQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5oCmluZGV4IGI1MTVjMmJhZGUzOWM3MGViMmI4NzZjYjMyYWRkNDljMzMxYTJlMjMuLmI5NzA3
YTE2ZjIxZWU0MGRjYTQwODNhYWFkZWZkZWRhNjg4ZjFiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTMw
LDEyICszMCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1lbnVtIEFycmF5SXRlcmF0aW9uS2lu
ZCA6IHVpbnQzMl90IHsKLSAgICBBcnJheUl0ZXJhdGVLZXksCi0gICAgQXJyYXlJdGVyYXRlVmFs
dWUsCi0gICAgQXJyYXlJdGVyYXRlS2V5VmFsdWUKLX07Ci0KIGNsYXNzIEFycmF5SXRlcmF0b3JQ
cm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggOGNjNmNhMDYwYWQ1NDcxM2E5YmFlNzlhNTAz
YTkzZGM4NmNkYWM3Yy4uODFkMjFmOGFjM2JlYjgzOGI4NzM1YTA4YmVhYjcyMjhjYjcyNTc1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SklULmgiCiAjaW5jbHVkZSAiSlNBcnJheUlubGluZXMuaCIKKyNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcAppbmRleCA5MjY1MjhlMGZlZTk0
MjE0NGJjYjg1NDhmNmExZGFkODhkODc0ZmE5Li40NzVkZjI1ODY4MzExMDMyMDEwZGFmOTZmNjQ1
YTdkNzY3NmI1NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDcsIDIwMDksIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOSwgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMsNiAr
NDMsNyBAQCBDb21tb25JZGVudGlmaWVyczo6Q29tbW9uSWRlbnRpZmllcnMoVk0qIHZtKQogICAg
ICwgbV9idWlsdGluTmFtZXMobmV3IEJ1aWx0aW5OYW1lcyh2bSwgdGhpcykpCiAgICAgSlNDX0NP
TU1PTl9JREVOVElGSUVSU19FQUNIX0tFWVdPUkQoSU5JVElBTElaRV9LRVlXT1JEKQogICAgIEpT
Q19DT01NT05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJPUEVS
VFlfTkFNRSkKKyAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJU
WV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9OQU1FKQogICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfU1lNQk9MKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKaW5kZXggODVjZWJiZjM4ZjllNTIxYjMwMzhhNWZjNGFjNDI1ZjFlODA3YmRiMi4uNWJiMGJh
ZTY5MjUxZDAwM2UzMWI3MmNiM2NiNTQ3YTc4ZTIzNjU3OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yMSw2ICsyMSw3IEBA
CiAjaWZuZGVmIENvbW1vbklkZW50aWZpZXJzX2gKICNkZWZpbmUgQ29tbW9uSWRlbnRpZmllcnNf
aAogCisjaW5jbHVkZSAiQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIgogI2luY2x1ZGUgIklk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtMzI1LDYgKzMy
NiwxMzIgQEAKICAgICBtYWNybyh0b1N0cmluZ1RhZykgXAogICAgIG1hY3JvKHVuc2NvcGFibGVz
KQogCisjZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZ
X05BTUUobWFjcm8pIFwKKyAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19GVU5DVElP
TlNfRUFDSF9OQU1FKG1hY3JvKSBcCisgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNf
Q09OU1RBTlRTX0VBQ0hfTkFNRShtYWNybykgXAorICAgIG1hY3JvKGl0ZXJhdGVkT2JqZWN0KSBc
CisgICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHRJbmRleCkgXAorICAgIG1hY3JvKGFycmF5SXRl
cmF0aW9uS2luZCkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JOZXh0KSBcCisgICAgbWFjcm8o
YXJyYXlJdGVyYXRvcklzRG9uZSkgXAorICAgIG1hY3JvKGFycmF5SXRlcmF0b3JLaW5kKSBcCisg
ICAgbWFjcm8oY2hhckNvZGVBdCkgXAorICAgIG1hY3JvKGl0ZXJhdGVkU3RyaW5nKSBcCisgICAg
bWFjcm8oc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXgpIFwKKyAgICBtYWNybyhwcm9taXNlKSBcCisg
ICAgbWFjcm8oZnVsZmlsbG1lbnRIYW5kbGVyKSBcCisgICAgbWFjcm8ocmVqZWN0aW9uSGFuZGxl
cikgXAorICAgIG1hY3JvKGluZGV4KSBcCisgICAgbWFjcm8oZGVmZXJyZWQpIFwKKyAgICBtYWNy
byhjb3VudGRvd25Ib2xkZXIpIFwKKyAgICBtYWNybyhPYmplY3QpIFwKKyAgICBtYWNybyhvd25F
bnVtZXJhYmxlUHJvcGVydHlLZXlzKSBcCisgICAgbWFjcm8oTnVtYmVyKSBcCisgICAgbWFjcm8o
QXJyYXkpIFwKKyAgICBtYWNybyhTdHJpbmcpIFwKKyAgICBtYWNybyhSZWdFeHApIFwKKyAgICBt
YWNybyhNYXApIFwKKyAgICBtYWNybyhQcm9taXNlKSBcCisgICAgbWFjcm8oUmVmbGVjdCkgXAor
ICAgIG1hY3JvKEludGVybmFsUHJvbWlzZSkgXAorICAgIG1hY3JvKGFicykgXAorICAgIG1hY3Jv
KGZsb29yKSBcCisgICAgbWFjcm8odHJ1bmMpIFwKKyAgICBtYWNybyhpc0Zpbml0ZSkgXAorICAg
IG1hY3JvKGlzTmFOKSBcCisgICAgbWFjcm8oY3JlYXRlKSBcCisgICAgbWFjcm8oZGVmaW5lUHJv
cGVydHkpIFwKKyAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAorICAgIG1hY3JvKGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcikgXAorICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKKyAg
ICBtYWNybyhvd25LZXlzKSBcCisgICAgbWFjcm8oRXJyb3IpIFwKKyAgICBtYWNybyhSYW5nZUVy
cm9yKSBcCisgICAgbWFjcm8oVHlwZUVycm9yKSBcCisgICAgbWFjcm8odHlwZWRBcnJheUxlbmd0
aCkgXAorICAgIG1hY3JvKHR5cGVkQXJyYXlTb3J0KSBcCisgICAgbWFjcm8odHlwZWRBcnJheUdl
dE9yaWdpbmFsQ29uc3RydWN0b3IpIFwKKyAgICBtYWNybyhCdWlsdGluTG9nKSBcCisgICAgbWFj
cm8oaG9tZU9iamVjdCkgXAorICAgIG1hY3JvKGdldFRlbXBsYXRlT2JqZWN0KSBcCisgICAgbWFj
cm8oZW5xdWV1ZUpvYikgXAorICAgIG1hY3JvKGhhbmRsZXIpIFwKKyAgICBtYWNybyhwcm9taXNl
U3RhdGUpIFwKKyAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9ucykgXAorICAgIG1hY3Jv
KHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKKyAgICBtYWNybyhwcm9taXNlUmVzdWx0KSBcCisg
ICAgbWFjcm8ocHVzaCkgXAorICAgIG1hY3JvKHJlcGVhdENoYXJhY3RlcikgXAorICAgIG1hY3Jv
KGNhcGFiaWxpdGllcykgXAorICAgIG1hY3JvKHN0YXJEZWZhdWx0KSBcCisgICAgbWFjcm8oSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uKSBcCisgICAgbWFjcm8oZ2V0KSBcCisgICAgbWFjcm8oc2V0
KSBcCisgICAgbWFjcm8oc2hpZnQpIFwKKyAgICBtYWNybyhhbGxvY2F0ZVR5cGVkQXJyYXkpIFwK
KyAgICBtYWNybyhJbnQ4QXJyYXkpIFwKKyAgICBtYWNybyhJbnQxNkFycmF5KSBcCisgICAgbWFj
cm8oSW50MzJBcnJheSkgXAorICAgIG1hY3JvKFVpbnQ4QXJyYXkpIFwKKyAgICBtYWNybyhVaW50
OENsYW1wZWRBcnJheSkgXAorICAgIG1hY3JvKFVpbnQxNkFycmF5KSBcCisgICAgbWFjcm8oVWlu
dDMyQXJyYXkpIFwKKyAgICBtYWNybyhGbG9hdDMyQXJyYXkpIFwKKyAgICBtYWNybyhGbG9hdDY0
QXJyYXkpIFwKKyAgICBtYWNybyhleGVjKSBcCisgICAgbWFjcm8oZ2VuZXJhdG9yKSBcCisgICAg
bWFjcm8oZ2VuZXJhdG9yTmV4dCkgXAorICAgIG1hY3JvKGdlbmVyYXRvclN0YXRlKSBcCisgICAg
bWFjcm8oZ2VuZXJhdG9yRnJhbWUpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JWYWx1ZSkgXAorICAg
IG1hY3JvKGdlbmVyYXRvclRoaXMpIFwKKyAgICBtYWNybyhnZW5lcmF0b3JSZXN1bWVNb2RlKSBc
CisgICAgbWFjcm8oQ29sbGF0b3IpIFwKKyAgICBtYWNybyhEYXRlVGltZUZvcm1hdCkgXAorICAg
IG1hY3JvKE51bWJlckZvcm1hdCkgXAorICAgIG1hY3JvKGludGxTdWJzdGl0dXRlVmFsdWUpIFwK
KyAgICBtYWNybyh0aGlzVGltZVZhbHVlKSBcCisgICAgbWFjcm8odGhpc051bWJlclZhbHVlKSBc
CisgICAgbWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKKyAgICBtYWNybyhkZXJpdmVkQ29uc3RydWN0
b3IpIFwKKyAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwKKyAgICBtYWNybyhoYXNJbnN0YW5j
ZUJvdW5kRnVuY3Rpb24pIFwKKyAgICBtYWNybyhpbnN0YW5jZU9mKSBcCisgICAgbWFjcm8oaXNB
cnJheSkgXAorICAgIG1hY3JvKGlzQXJyYXlDb25zdHJ1Y3RvcikgXAorICAgIG1hY3JvKGlzQ29u
c3RydWN0b3IpIFwKKyAgICBtYWNybyhpc1JlZ0V4cE9iamVjdCkgXAorICAgIG1hY3JvKGNvbmNh
dE1lbWNweSkgXAorICAgIG1hY3JvKGFwcGVuZE1lbWNweSkgXAorICAgIG1hY3JvKHByZWRpY3RG
aW5hbExlbmd0aEZyb21Bcmd1bXVudHMpIFwKKyAgICBtYWNybyhwcmludCkgXAorICAgIG1hY3Jv
KGlzU2V0KSBcCisgICAgbWFjcm8oaXNNYXApIFwKKyAgICBtYWNybyhyZWdFeHBDcmVhdGUpIFwK
KyAgICBtYWNybyhTZXRJdGVyYXRvcikgXAorICAgIG1hY3JvKHNldEl0ZXJhdG9yTmV4dCkgXAor
ICAgIG1hY3JvKHJlcGxhY2VVc2luZ1JlZ0V4cCkgXAorICAgIG1hY3JvKHJlcGxhY2VVc2luZ1N0
cmluZ1NlYXJjaCkgXAorICAgIG1hY3JvKE1hcEl0ZXJhdG9yKSBcCisgICAgbWFjcm8obWFwSXRl
cmF0b3JOZXh0KSBcCisgICAgbWFjcm8ocmVnRXhwQnVpbHRpbkV4ZWMpIFwKKyAgICBtYWNybyhy
ZWdFeHBNYXRjaEZhc3QpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b0ZsYWdzR2V0dGVyKSBcCisg
ICAgbWFjcm8ocmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90
b0lnbm9yZUNhc2VHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b011bHRpbGluZUdldHRl
cikgXAorICAgIG1hY3JvKHJlZ0V4cFByb3RvU291cmNlR2V0dGVyKSBcCisgICAgbWFjcm8ocmVn
RXhwUHJvdG9TdGlja3lHZXR0ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b1VuaWNvZGVHZXR0
ZXIpIFwKKyAgICBtYWNybyhyZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlKSBcCisgICAgbWFj
cm8ocmVnRXhwUmVwbGFjZUZhc3QpIFwKKyAgICBtYWNybyhyZWdFeHBTZWFyY2hGYXN0KSBcCisg
ICAgbWFjcm8ocmVnRXhwU3BsaXRGYXN0KSBcCisgICAgbWFjcm8ocmVnRXhwVGVzdEZhc3QpIFwK
KyAgICBtYWNybyhzdHJpbmdJbmNsdWRlc0ludGVybmFsKSBcCisgICAgbWFjcm8oc3RyaW5nU3Bs
aXRGYXN0KSBcCisgICAgbWFjcm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKKwogbmFtZXNwYWNl
IEpTQyB7CiAgICAgCiAgICAgY2xhc3MgQnVpbHRpbk5hbWVzOwpAQCAtMzU3LDYgKzQ4NCwxMCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX1BS
T1BFUlRZX05BTUUoSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUk9QRVJUWV9OQU1FX0dMT0JBTCkK
ICN1bmRlZiBKU0NfSURFTlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMCiAKKyNk
ZWZpbmUgSlNDX0lERU5USUZJRVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFM
KG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbmFtZSMjUHJpdmF0ZU5hbWU7CisgICAgICAgIEpTQ19D
T01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSlNDX0lERU5USUZJ
RVJfREVDTEFSRV9QUklWQVRFX1BST1BFUlRZX05BTUVfR0xPQkFMKQorI3VuZGVmIEpTQ19JREVO
VElGSUVSX0RFQ0xBUkVfUFJJVkFURV9QUk9QRVJUWV9OQU1FX0dMT0JBTAorCiAjZGVmaW5lIEpT
Q19JREVOVElGSUVSX0RFQ0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwobmFt
ZSkgY29uc3QgSWRlbnRpZmllciBuYW1lIyNTeW1ib2w7CiAgICAgICAgIEpTQ19DT01NT05fUFJJ
VkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKEpTQ19JREVOVElGSUVSX0RF
Q0xBUkVfUFJJVkFURV9XRUxMX0tOT1dOX1NZTUJPTF9HTE9CQUwpCiAjdW5kZWYgSlNDX0lERU5U
SUZJRVJfREVDTEFSRV9QUklWQVRFX1dFTExfS05PV05fU1lNQk9MX0dMT0JBTApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYTZl
Y2ZkMjg0YjEwMWMzYWMwMDFmNjgyZjg4OGRlZDE5NzY3ODQzOC4uZTU0NDMxMGZiMjNkZTJlMjk2
ODlmZDc2ZWU3Zjc5NzZkMjQ0MTcyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0yNSw5ICsyNSw3IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKLQogI2luY2x1ZGUgIkFy
cmF5Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKICNpbmNsdWRlICJDbG9uZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJDb2Rl
UHJvZmlsaW5nLmgiCkBAIC03MTksNyArNzE3LDcgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3NhdmUpCiAgICAgQkVHSU4oKTsKICAgICBKU1ZhbHVlIGdlbmVyYXRvciA9IE9QKDEpLmpzVmFs
dWUoKTsKICAgICBHZW5lcmF0b3JGcmFtZSogZnJhbWUgPSBudWxscHRyOwotICAgIEpTVmFsdWUg
dmFsdWUgPSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGlu
TmFtZXMoKS5nZW5lcmF0b3JGcmFtZVByaXZhdGVOYW1lKCkpOworICAgIEpTVmFsdWUgdmFsdWUg
PSBnZW5lcmF0b3IuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZW5lcmF0b3JGcmFt
ZVByaXZhdGVOYW1lKTsKICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBmcmFtZSA9
IGpzQ2FzdDxHZW5lcmF0b3JGcmFtZSo+KHZhbHVlKTsKICAgICBlbHNlIHsKQEAgLTcyNyw3ICs3
MjUsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2F2ZSkKICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0NQogICAgICAgICBmcmFtZSA9
IEdlbmVyYXRvckZyYW1lOjpjcmVhdGUoZXhlYy0+dm0oKSwgIGV4ZWMtPmNvZGVCbG9jaygpLT5u
dW1DYWxsZWVMb2NhbHMoKSk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGdlbmVyYXRv
ciwgdHJ1ZSwgUHV0UHJvcGVydHlTbG90OjpQdXRCeUlkKTsKLSAgICAgICAgYXNPYmplY3QoZ2Vu
ZXJhdG9yKS0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPnB1dChhc09iamVjdChnZW5lcmF0b3Ip
LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9yRnJh
bWVQcml2YXRlTmFtZSgpLCBmcmFtZSwgc2xvdCk7CisgICAgICAgIGFzT2JqZWN0KGdlbmVyYXRv
ciktPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5wdXQoYXNPYmplY3QoZ2VuZXJhdG9yKSwgZXhl
YywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdlbmVyYXRvckZyYW1lUHJpdmF0ZU5hbWUsIGZyYW1l
LCBzbG90KTsKICAgICB9CiAgICAgdW5zaWduZWQgbGl2ZUNhbGxlZUxvY2Fsc0luZGV4ID0gcGNb
Ml0udS51bnNpZ25lZFZhbHVlOwogICAgIGZyYW1lLT5zYXZlKGV4ZWMsIGV4ZWMtPmNvZGVCbG9j
aygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVlTG9jYWxzSW5kZXgpKTsKQEAg
LTczOCw3ICs3MzYsNyBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzdW1lKQogewogICAg
IEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBnZW5lcmF0b3IgPSBPUCgxKS5qc1ZhbHVlKCk7Ci0gICAg
R2VuZXJhdG9yRnJhbWUqIGZyYW1lID0ganNDYXN0PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJhdG9y
LmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2VuZXJhdG9y
RnJhbWVQcml2YXRlTmFtZSgpKSk7CisgICAgR2VuZXJhdG9yRnJhbWUqIGZyYW1lID0ganNDYXN0
PEdlbmVyYXRvckZyYW1lKj4oZ2VuZXJhdG9yLmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuZ2VuZXJhdG9yRnJhbWVQcml2YXRlTmFtZSkpOwogICAgIHVuc2lnbmVkIGxpdmVDYWxsZWVM
b2NhbHNJbmRleCA9IHBjWzJdLnUudW5zaWduZWRWYWx1ZTsKICAgICBmcmFtZS0+cmVzdW1lKGV4
ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5saXZlQ2FsbGVlTG9jYWxzQXRZaWVsZChsaXZlQ2FsbGVl
TG9jYWxzSW5kZXgpKTsKICAgICBFTkQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDNhODA1MDBmOGZkZTFjNGY3
NTBlODcwYjljMGEyNjgxMDhiZTc4YTkuLjQ4Mzg5Y2QzYjI1NGI4YTM5ZWMxMDUxODUxYTljYzU0
ZWI3OWNjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQW5keSBWYW5XYWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20pCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCBkZTUw
OWY1MzljMjEwZDE2OGE3NDEyMWViZWI5YzQ0MjFmNzUwZmQyLi5lMWRkM2U0NGRmNGE0ZTEyOWQw
MWI4ZGM5OTllODY2OWY5MjY2OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTI4
LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShJTlRMKQogCi0jaW5jbHVkZSAiQnVpbHRpbk5hbWVz
LmgiCiAjaW5jbHVkZSAiRGF0ZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNp
bmNsdWRlICJJbnRsRGF0ZVRpbWVGb3JtYXQuaCIKQEAgLTExNyw3ICsxMTYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZv
cm1hdChFeGVjU3RhdGUqCiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21w
YXRpYmlsaXR5IHdpdGggRUNNQS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICgh
ZHRmKQotICAgICAgICBkdGYgPSBqc0R5bmFtaWNDYXN0PEludGxEYXRlVGltZUZvcm1hdCo+KHN0
YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgpKSk7CisgICAgICAg
IGR0ZiA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4oc3RhdGUtPnRoaXNWYWx1
ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+aW50bFN1YnN0aXR1dGVW
YWx1ZVByaXZhdGVOYW1lKSk7CiAKICAgICAvLyAyLiBSZXR1cm5JZkFicnVwdChkdGYpLgogICAg
IGlmICghZHRmKQpAQCAtMTU0LDcgKzE1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhFeGVjCiAg
ICAgLy8gRklYTUU6IFdvcmthcm91bmQgdG8gcHJvdmlkZSBjb21wYXRpYmlsaXR5IHdpdGggRUNN
QS00MDIgMS4wIGNhbGwvYXBwbHkgcGF0dGVybnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY3OQogICAgIGlmICghZGF0ZVRpbWVGb3JtYXQpCi0g
ICAgICAgIGRhdGVUaW1lRm9ybWF0ID0ganNEeW5hbWljQ2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXQq
PihzdGF0ZS0+dGhpc1ZhbHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOworICAg
ICAgICBkYXRlVGltZUZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0Kj4o
c3RhdGUtPnRoaXNWYWx1ZSgpLmdldChzdGF0ZSwgc3RhdGUtPnZtKCkucHJvcGVydHlOYW1lcy0+
aW50bFN1YnN0aXR1dGVWYWx1ZVByaXZhdGVOYW1lKSk7CiAKICAgICBpZiAoIWRhdGVUaW1lRm9y
bWF0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRl
LCBBU0NJSUxpdGVyYWwoIkludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0
aW9ucyBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMg
YSBEYXRlVGltZUZvcm1hdCIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IGZlMmM5ZGJm
NmZkOTQyYmNhMWI1YTA1NDc2ODUyNWJhYjc2YTI5NGQuLjBhNWQ1NjMxNmQ1NmFiNWEwODVlNjQ4
NWI1MTE3ODY3ZjlmOTc4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0xLDYgKzEsNSBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKHRoZXRhbGVjcmFm
dGVyQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDcgKzI4
LDYgQEAKIAogI2lmIEVOQUJMRShJTlRMKQogCi0jaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAj
aW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAjaW5jbHVk
ZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCkBAIC0xMDcsNyArMTA1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEV4ZWNT
dGF0ZSogc3QKICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGliaWxp
dHkgd2l0aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFuZikKLSAg
ICAgICAgbmYgPSBqc0R5bmFtaWNDYXN0PEludGxOdW1iZXJGb3JtYXQqPihzdGF0ZS0+dGhpc1Zh
bHVlKCkuZ2V0KHN0YXRlLCBzdGF0ZS0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5pbnRsU3Vic3RpdHV0ZVZhbHVlUHJpdmF0ZU5hbWUoKSkpOworICAgICAgICBuZiA9IGpzRHlu
YW1pY0Nhc3Q8SW50bE51bWJlckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUs
IHN0YXRlLT52bSgpLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFt
ZSkpOwogCiAgICAgaWYgKCFuZikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJv
d1R5cGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFsKCJJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5
cGUuZm9ybWF0IGNhbGxlZCBvbiB2YWx1ZSB0aGF0J3Mgbm90IGFuIG9iamVjdCBpbml0aWFsaXpl
ZCBhcyBhIE51bWJlckZvcm1hdCIpKSk7CkBAIC0xNDMsNyArMTQxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0
aW9ucyhFeGVjU3QKICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCB0byBwcm92aWRlIGNvbXBhdGli
aWxpdHkgd2l0aCBFQ01BLTQwMiAxLjAgY2FsbC9hcHBseSBwYXR0ZXJucy4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjc5CiAgICAgaWYgKCFudW1i
ZXJGb3JtYXQpCi0gICAgICAgIG51bWJlckZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJl
ckZvcm1hdCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSgp
KSk7CisgICAgICAgIG51bWJlckZvcm1hdCA9IGpzRHluYW1pY0Nhc3Q8SW50bE51bWJlckZvcm1h
dCo+KHN0YXRlLT50aGlzVmFsdWUoKS5nZXQoc3RhdGUsIHN0YXRlLT52bSgpLnByb3BlcnR5TmFt
ZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSkpOwogCiAgICAgaWYgKCFudW1iZXJG
b3JtYXQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3Ioc3Rh
dGUsIEFTQ0lJTGl0ZXJhbCgiSW50bC5OdW1iZXJGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0
aW9ucyBjYWxsZWQgb24gdmFsdWUgdGhhdCdzIG5vdCBhbiBvYmplY3QgaW5pdGlhbGl6ZWQgYXMg
YSBOdW1iZXJGb3JtYXQiKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3RJbmxpbmVzLmgKaW5kZXggZTNiZmYzODc3YjA4ZjFkOTY5YzczMWVmNGIxMzI3
ZGZlNjQ5NGJhOS4uMTI5ZDk4NTUzOGY1Yjg4MmMwMGNkOWRjZjAzNDczYjA3YmVjNjRjOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5o
CkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtp
IDx5dXN1a2Uuc3V6dWtpQHNzbGFiLmljcy5rZWlvLmFjLmpwPgotICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjgsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKElOVEwpCiAKLSNpbmNs
dWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNPYmplY3QuaCIKIApAQCAtNTEsNyArNDksNyBAQCBKU1ZhbHVlIGNvbnN0cnVjdEludGxJbnN0
YW5jZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSYgcwog
ICAgICAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmludGxTdWJzdGl0dXRlVmFsdWVQ
cml2YXRlTmFtZSgpLCBpbnN0YW5jZSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmludGxTdWJzdGl0dXRlVmFsdWVQcml2YXRlTmFtZSwg
aW5zdGFuY2UpOwogICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3Q7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRl
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUl0ZXJhdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMDEwNWI4N2Y4YmI4YjIzYjBlMmIxNmYzOTk1YTAxM2U3NTZlYWQw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUl0ZXJhdG9yLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNB
cnJheUl0ZXJhdG9yLmgiCisKKyNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1
ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKKyNp
bmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25zdCBD
bGFzc0luZm8gSlNBcnJheUl0ZXJhdG9yOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZC
YXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJheUl0ZXJhdG9yKSB9Owor
Cit2b2lkIEpTQXJyYXlJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCosIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0ZWRPYmplY3Qp
Cit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhp
bmZvKCkpKTsKKworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRP
YmplY3RQcml2YXRlTmFtZSwgaXRlcmF0ZWRPYmplY3QpOworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+YXJyYXlJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1lLCBqc051bWJl
cigwKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcnJheUl0ZXJhdGlv
bktpbmRQcml2YXRlTmFtZSwganNOdW1iZXIoa2luZCkpOworfQorCitBcnJheUl0ZXJhdGlvbktp
bmQgSlNBcnJheUl0ZXJhdG9yOjpraW5kKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBK
U1ZhbHVlIGtpbmRWYWx1ZSA9IGdldERpcmVjdChleGVjLT52bSgpLCBleGVjLT52bSgpLnByb3Bl
cnR5TmFtZXMtPmFycmF5SXRlcmF0aW9uS2luZFByaXZhdGVOYW1lKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8QXJyYXlJdGVyYXRpb25LaW5kPihraW5kVmFsdWUuYXNJbnQzMigpKTsKK30KKwor
SlNWYWx1ZSBKU0FycmF5SXRlcmF0b3I6Oml0ZXJhdGVkVmFsdWUoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAoreworICAgIHJldHVybiBnZXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+dm0oKS5wcm9w
ZXJ0eU5hbWVzLT5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lKTsKK30KKworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlJdGVyYXRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAxNjZiZDJlNTM1MmJhMjE1OTM2NDI3MWVjYWJiYWY4MGUxNTM2M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5SXRlcmF0b3IuaApAQCAt
MCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIEpTQXJyYXlJdGVyYXRvcl9oCisjZGVmaW5lIEpTQXJyYXlJdGVyYXRvcl9o
CisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBBcnJh
eUl0ZXJhdGlvbktpbmQgOiB1aW50MzJfdCB7CisgICAgQXJyYXlJdGVyYXRlS2V5LAorICAgIEFy
cmF5SXRlcmF0ZVZhbHVlLAorICAgIEFycmF5SXRlcmF0ZUtleVZhbHVlCit9OworCitjbGFzcyBK
U0FycmF5SXRlcmF0b3IgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisKKyAgICBERUNMQVJFX0VYUE9SVF9JTkZP
OworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCisg
ICAgc3RhdGljIEpTQXJyYXlJdGVyYXRvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEFycmF5SXRlcmF0aW9uS2luZCBraW5kLCBKU09iamVjdCogaXRlcmF0
ZWRPYmplY3QpCisgICAgeworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICBK
U0FycmF5SXRlcmF0b3IqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNB
cnJheUl0ZXJhdG9yPih2bS5oZWFwKSkgSlNBcnJheUl0ZXJhdG9yKHZtLCBzdHJ1Y3R1cmUpOwor
ICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2Jq
ZWN0KCksIGtpbmQsIGl0ZXJhdGVkT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOwor
ICAgIH0KKworICAgIEFycmF5SXRlcmF0aW9uS2luZCBraW5kKEV4ZWNTdGF0ZSopIGNvbnN0Owor
ICAgIEpTVmFsdWUgaXRlcmF0ZWRWYWx1ZShFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBKU0FycmF5
SXRlcmF0b3IqIGNsb25lKEV4ZWNTdGF0ZSopOworCisgICAgdXNpbmcgSlNOb25GaW5hbE9iamVj
dDo6YXJyYXlTdG9yYWdlT3JOdWxsOworcHJpdmF0ZToKKyAgICBKU0FycmF5SXRlcmF0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgeworICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9i
amVjdCosIEFycmF5SXRlcmF0aW9uS2luZCwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KTsKK307
CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEpTQXJyYXlJdGVyYXRvcl9oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggY2NjM2IwNWQ3Nzll
MDg2OWQ0Yjk3MDJmYmNjOTlkZDhiOGIzM2M5My4uNmViMDg5MjEzN2ZkODMxNDJiZDYwZTgxMWM0
NTI4MGQ1MDcwY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
SW5saW5lcy5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3JJbmxpbmVzX2gKICNkZWZpbmUgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcklubGluZXNfaAogCi0jaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVk
ZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJdGVyYXRvck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJK
U0FycmF5QnVmZmVyLmgiCkBAIC01Myw3ICs1Miw3IEBAIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPkJZ
VEVTX1BFUl9FTEVNRU5ULCBqc051bWJlcihWaWV3Q2xhc3M6OmVsZW1lbnRTaXplKSwgRG9udEVu
dW0gfCBSZWFkT25seSB8IERvbnREZWxldGUpOwogCiAgICAgaWYgKHByaXZhdGVBbGxvY2F0b3Ip
Ci0gICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFt
ZSgpLCBwcml2YXRlQWxsb2NhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7
CisgICAgICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5hbGxvY2F0ZVR5cGVkQXJyYXlQcml2YXRlTmFtZSwgcHJpdmF0ZUFsbG9j
YXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVG
dW5jdGlvbnMuaAppbmRleCAwYjAyM2Q4MmQ5Y2E2NDI2ZDliN2YwODVmNGQ4MmE4ZTI0YzdjYThm
Li40ZjNiOGVjN2I0OTEyNDI1ZTA0MjM2MTE0YmUzMmU2ZjY0OGFhNDkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKKyNpbmNsdWRlICJKU0FycmF5SXRlcmF0
b3IuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGFiMDE5Y2E4N2MyYzIxYmEwNTY3
ZmY0MmZkMzVlN2MwY2RhYjI2OWUuLjQwYTkyZmM1YTExZGNkNDRhZWEyOTM0YTUzNGJlODk4MjRj
ODk2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlclByb3RvdHlwZS5oIgorI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJK
U0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKQEAgLTQyNSw3ICs0MjYsNyBAQCB2b2lkIEpTR2xvYmFs
T2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICAgICAgICAgIGluaXQuc2V0UHJvdG90eXBlKEpTICMj
IHR5cGUgIyMgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgSlMg
IyMgdHlwZSAjIyBBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQu
Z2xvYmFsLCBpbml0Lmdsb2JhbC0+bV90eXBlZEFycmF5UHJvdG8uZ2V0KGluaXQuZ2xvYmFsKSkp
KTsgXAogICAgICAgICAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoSlMgIyMgdHlwZSAjIyBBcnJheTo6
Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBpbml0LnByb3RvdHlwZSkpOyBc
CiAgICAgICAgICAgICBpbml0LnNldENvbnN0cnVjdG9yKEpTICMjIHR5cGUgIyMgQXJyYXlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlKGluaXQudm0sIGluaXQuZ2xvYmFsLCBKUyAjIyB0eXBlICMjIEFycmF5
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCBpbml0Lmdsb2JhbCwgaW5pdC5n
bG9iYWwtPm1fdHlwZWRBcnJheVN1cGVyQ29uc3RydWN0b3IuZ2V0KGluaXQuZ2xvYmFsKSksIGlu
aXQucHJvdG90eXBlLCBBU0NJSUxpdGVyYWwoI3R5cGUgIkFycmF5IiksIHR5cGVkQXJyYXlDb25z
dHJ1Y3RvckFsbG9jYXRlICMjIHR5cGUgIyMgQXJyYXlDb2RlR2VuZXJhdG9yKGluaXQudm0pKSk7
IFwKLSAgICAgICAgICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihp
bml0LnZtLCBpbml0LnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnR5cGUgIyMgQXJy
YXlQcml2YXRlTmFtZSgpLCBpbml0LmNvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKKyAgICAgICAg
ICAgIGluaXQuZ2xvYmFsLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihpbml0LnZtLCBpbml0
LnZtLnByb3BlcnR5TmFtZXMtPnR5cGUgIyMgQXJyYXlQcml2YXRlTmFtZSwgaW5pdC5jb25zdHJ1
Y3RvciwgRG9udEVudW0pOyBcCiAgICAgICAgIH0pOwogICAgIEZPUl9FQUNIX1RZUEVEX0FSUkFZ
X1RZUEVfRVhDTFVESU5HX0RBVEFfVklFVyhJTklUX1RZUEVEX0FSUkFZX0xBVEVSKQogI3VuZGVm
IElOSVRfVFlQRURfQVJSQVlfTEFURVIKQEAgLTYxOCw4ICs2MTksOCBAQCBtXyAjIyBsb3dlck5h
bWUgIyMgUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5SYW5nZUVycm9yLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVu
dW0pOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5UeXBlRXJyb3IsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtKTsKIAot
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5PYmplY3RQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5BcnJheVByaXZhdGVOYW1l
KCksIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsK
KyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+T2Jq
ZWN0UHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAogI2RlZmluZSBQVVRfQ09OU1RSVUNUT1JfRk9SX1NJ
TVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlw
ZSwganNOYW1lKSBcCiBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yLCBEb250RW51bSk7IFwKQEAg
LTY1Miw2ICs2NTMsOCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsKIAogICAgIEpTRnVuY3Rp
b24qIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7CisgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUb0xlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgZ2xvYmFsT2JqZWN0VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CisgICAgSlNG
dW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGlu
RnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlz
KTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVG
dW5jTGVuZ3RoKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmln
aW5hbENvbnN0cnVjdG9yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmco
KSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQgPSBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7
CkBAIC02NjUsNiArNjY4LDEzIEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXMsIDAsIFN0cmluZygpLCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jQ29uY2F0U2xvd1BhdGggPSBKU0Z1bmN0aW9uOjpjcmVh
dGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5UHJvdG90eXBlQ29uY2F0U2xvd1BhdGhDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyk7CiAKKyAgICBKU09iamVjdCogYXJyYXlJdGVyYXRvclByb3RvdHlw
ZSA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgQXJyYXlJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0ZXJhdG9yUHJvdG90eXBl
LmdldCgpKSk7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNDcmVhdGVBcnJheUl0ZXJhdG9y
ID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBhcnJheVByb3RvdHlwZUNy
ZWF0ZUFycmF5SXRlcmF0b3JDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKKyAg
ICBwcml2YXRlRnVuY0NyZWF0ZUFycmF5SXRlcmF0b3ItPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlKTsKKyAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY0FycmF5SXRlcmF0b3JWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVh
dGVCdWlsdGluRnVuY3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9y
VmFsdWVOZXh0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpOworICAgIEpTRnVuY3Rpb24qIHByaXZh
dGVGdW5jQXJyYXlJdGVyYXRvcktleU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5TmV4dENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKTsKKyAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0FycmF5SXRl
cmF0b3JLZXlWYWx1ZU5leHQgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IGFycmF5SXRlcmF0b3JQcm90b3R5cGVBcnJheUl0ZXJhdG9yS2V5VmFsdWVOZXh0Q29kZUdlbmVy
YXRvcih2bSksIHRoaXMpOworCiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXJP
YmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5w
cm9wZXJ0eU5hbWVzLT5mbGFncyk7CiAgICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvR2xvYmFsR2V0
dGVyT2JqZWN0ID0gZ2V0R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwg
dm0ucHJvcGVydHlOYW1lcy0+Z2xvYmFsKTsKICAgICBtX3JlZ0V4cFByb3RvR2xvYmFsR2V0dGVy
LnNldCh2bSwgdGhpcywgcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJPYmplY3QpOwpAQCAtNjc5LDYx
ICs2ODksNzAgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU09iamVjdCogcmVnRXhw
U3ltYm9sUmVwbGFjZSA9IGFzT2JqZWN0KG1fcmVnRXhwUHJvdG90eXBlLT5nZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VTeW1ib2wpLmFzQ2VsbCgpKTsKICAgICBtX3JlZ0V4
cFByb3RvU3ltYm9sUmVwbGFjZS5zZXQodm0sIHRoaXMsIHJlZ0V4cFN5bWJvbFJlcGxhY2UpOwog
Ci0jZGVmaW5lIENSRUFURV9QUklWQVRFX0dMT0JBTF9GVU5DVElPTihuYW1lLCBjb2RlKSBKU0Z1
bmN0aW9uKiBuYW1lICMjIFByaXZhdGVGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgY29kZSAjIyBDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKENSRUFURV9QUklW
QVRFX0dMT0JBTF9GVU5DVElPTikKLSN1bmRlZiBDUkVBVEVfUFJJVkFURV9HTE9CQUxfRlVOQ1RJ
T04KLQotICAgIEpTT2JqZWN0KiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gQXJyYXlJdGVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsKLSAgICBj
cmVhdGVBcnJheUl0ZXJhdG9yUHJpdmF0ZUZ1bmN0aW9uLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgYXJyYXlJdGVyYXRvclByb3RvdHlwZSk7Ci0KLQogICAgIEds
b2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7Ci0jZGVmaW5lIElOSVRfUFJJVkFU
RV9HTE9CQUwobmFtZSwgY29kZSkgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLm5hbWUgIyMgUHJpdmF0ZU5hbWUoKSwgbmFtZSAjIyBQcml2YXRlRnVu
Y3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgSlNDX0ZP
UkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9QUklWQVRFX0dMT0JBTF9OQU1FKElOSVRfUFJJVkFURV9H
TE9CQUwpCi0jdW5kZWYgSU5JVF9QUklWQVRFX0dMT0JBTAogICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZp
bml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCwganNVbmRl
ZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkub3duRW51bWVy
YWJsZVByb3BlcnR5S2V5c1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMCwgU3RyaW5nKCksIG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lKCks
IHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmVucXVldWVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuRXJyb3JQcml2YXRlTmFtZSgpLCBtX2Vycm9yQ29uc3RydWN0b3Iu
Z2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlJhbmdlRXJyb3JQ
cml2YXRlTmFtZSgpLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuVHlwZUVycm9yUHJpdmF0ZU5hbWUoKSwgbV90eXBl
RXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkudHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJh
eUxlbmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudHlwZWRBcnJh
eUdldE9yaWdpbmFsQ29uc3RydWN0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1R5cGVkQXJy
YXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVHlwZWRBcnJh
eVNvcnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQm91bmRGdW5j
dGlvblByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2
YXRlTmFtZSgpLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW5zdGFuY2VPZlByaXZhdGVOYW1lKCksIHBy
aXZhdGVGdW5jSW5zdGFuY2VPZiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuQnVpbHRpbkxvZ1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5Mb2csIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk51bWJlclByaXZhdGVOYW1lKCksIG51bWJlckNvbnN0cnVj
dG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5SZWdFeHBQcml2YXRl
TmFtZSgpLCBtX3JlZ0V4cENvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5TdHJpbmdQcml2YXRlTmFtZSgpLCBzdHJpbmdDb25zdHJ1Y3Rvciwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWJzUHJpdmF0ZU5hbWUoKSwg
cHJpdmF0ZUZ1bmNBYnMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZs
b29yUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNGbG9vciwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkudHJ1bmNQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RydW5jLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0Zpbml0ZVByaXZhdGVOYW1l
KCksIHByaXZhdGVGdW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmlzTmFOUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJc05hTiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUHJvbWlzZVByaXZhdGVOYW1lKCksIHByb21pc2VD
b25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuUmVmbGVj
dFByaXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLkludGVybmFsUHJvbWlzZVByaXZhdGVOYW1lKCksIGludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJl
cGVhdENoYXJhY3RlclByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MiwgU3RyaW5nKCksIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzU2V0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNJc1NldCksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLlNldEl0ZXJhdG9yUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNT
ZXRJdGVyYXRvciksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNldEl0
ZXJhdG9yTmV4dFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwg
U3RyaW5nKCksIHByaXZhdGVGdW5jU2V0SXRlcmF0b3JOZXh0KSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNNYXBQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzTWFwKSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNBcnJheVByaXZhdGVOYW1lKCksIGFycmF5Q29u
c3RydWN0b3ItPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheSksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzQXJyYXlDb25zdHJ1Y3RvclByaXZh
dGVOYW1lKCksIHByaXZhdGVGdW5jSXNBcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb25jYXRNZW1jcHlQcml2YXRlTmFtZSgpLCBwcml2YXRl
RnVuY0NvbmNhdE1lbWNweSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
YXBwZW5kTWVtY3B5UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPm93bkVudW1lcmFibGVQcm9wZXJ0eUtleXNQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb3duRW51bWVyYWJsZVBy
b3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmdldFRlbXBsYXRlT2JqZWN0UHJp
dmF0ZU5hbWUsIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmVucXVldWVKb2JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAwLCBTdHJpbmcoKSwgZW5xdWV1ZUpvYiksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkVycm9y
UHJpdmF0ZU5hbWUsIG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+UmFuZ2VFcnJvclByaXZhdGVOYW1lLCBtX3JhbmdlRXJyb3JDb25zdHJ1Y3Rvci5nZXQo
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVy
cm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlM
ZW5ndGhQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5R2V0T3JpZ2luYWxDb25zdHJ1Y3RvclByaXZhdGVOYW1l
LCBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVk
QXJyYXlTb3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rpb25Qcml2YXRl
TmFtZSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0hhc0luc3Rh
bmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFuY2VPZlByaXZh
dGVOYW1lLCBwcml2YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1
aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5SZWdFeHBQcml2YXRlTmFtZSwgbV9yZWdFeHBDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+U3RyaW5nUHJpdmF0ZU5hbWUsIHN0cmluZ0NvbnN0cnVjdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5hYnNQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNBYnMsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmZsb29yUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jRmxvb3Is
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnRydW5jUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHJ1
bmMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzRmluaXRlUHJpdmF0ZU5hbWUsIHByaXZhdGVG
dW5jSXNGaW5pdGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTmFOUHJpdmF0ZU5hbWUsIHBy
aXZhdGVGdW5jSXNOYU4sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlByb21pc2VQcml2YXRlTmFt
ZSwgcHJvbWlzZUNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5SZWZsZWN0UHJp
dmF0ZU5hbWUsIHJlZmxlY3RPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkludGVybmFs
UHJvbWlzZVByaXZhdGVOYW1lLCBpbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5yZXBlYXRDaGFyYWN0ZXJQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFj
dGVyKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwZWF0U2xvd1Bh
dGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0
cmluZ1Byb3RvdHlwZVJlcGVhdFNsb3dQYXRoQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXBlYXRDaGFyYWN0ZXJzU2xvd1Bh
dGhQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0
cmluZ1Byb3RvdHlwZVJlcGVhdENoYXJhY3RlcnNTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0pLCB0
aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1NldFByaXZhdGVOYW1lLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY0lzU2V0KSwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+U2V0SXRlcmF0b3JQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNTZXRJdGVyYXRvciksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPnNldEl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBwcml2YXRlRnVuY1NldEl0ZXJhdG9y
TmV4dCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzTWFwUHJpdmF0ZU5hbWUsIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZhdGVGdW5jSXNNYXApLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5pc0FycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0b3It
PmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNBcnJheSksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmlzQXJyYXlDb25zdHJ1Y3RvclByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lzQXJy
YXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Y29uY2F0TWVtY3B5UHJpdmF0
ZU5hbWUsIHByaXZhdGVGdW5jQ29uY2F0TWVtY3B5LCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5h
cHBlbmRNZW1jcHlQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdFNsb3dQYXRoUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZUZ1bmNDb25jYXRTbG93UGF0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuTWFwSXRlcmF0b3JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCBwcml2YXRlRnVuY01hcEl0ZXJhdG9yKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubWFwSXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgcHJpdmF0ZUZ1bmNN
YXBJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk1hcEl0ZXJhdG9yUHJp
dmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHByaXZh
dGVGdW5jTWFwSXRlcmF0b3IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5tYXBJdGVyYXRvck5l
eHRQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
cHJpdmF0ZUZ1bmNNYXBJdGVyYXRvck5leHQpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yVmFsdWVOZXh0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1
bmNBcnJheUl0ZXJhdG9yVmFsdWVOZXh0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5hcnJheUl0ZXJhdG9yS2V5TmV4dFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jQXJy
YXlJdGVyYXRvcktleU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmFycmF5SXRlcmF0b3JLZXlWYWx1ZU5leHRQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0FycmF5
SXRlcmF0b3JLZXlWYWx1ZU5leHQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmNyZWF0ZUFycmF5SXRlcmF0b3JQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY0NyZWF0ZUFy
cmF5SXRlcmF0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKworICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9M
ZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvTGVuZ3RoLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVnZXJQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNEaWN0
aW9uYXJ5UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZt
LCBnbG9iYWxPYmplY3RJc0RpY3Rpb25hcnlDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzUHJvbWlzZVByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNJ
c1Byb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLm5ld1Byb21pc2VSZWFjdGlvblByaXZhdGVOYW1lKCksIEpTRnVuY3Rp
b246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNOZXdQcm9taXNl
UmVhY3Rpb25Db2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLm5ld1Byb21pc2VDYXBhYmlsaXR5UHJpdmF0ZU5hbWUoKSwgbV9uZXdQ
cm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS50cmlnZ2VyUHJvbWlzZVJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNUcmlnZ2Vy
UHJvbWlzZVJlYWN0aW9uc0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJvbWlzZVByaXZhdGVOYW1lKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNSZWplY3RQ
cm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5mdWxmaWxsUHJvbWlzZVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNGdWxmaWxsUHJvbWlzZUNv
ZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuY3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc0NyZWF0ZVJlc29sdmlu
Z0Z1bmN0aW9uc0NvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlYWN0aW9uSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1Byb21pc2VS
ZWFjdGlvbkpvYkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYlByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNQ
cm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Q
cml2YXRlTmFtZSgpLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSh2bSwg
dGhpcywgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLk1hcFByaXZhdGVOYW1lKCksIG1hcENvbnN0cnVjdG9yLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5NYXBQcml2YXRlTmFtZSwgbWFwQ29uc3RydWN0b3IsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdlbmVyYXRvclJlc3VtZVByaXZhdGVOYW1l
KCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2VuZXJhdG9yUHJvdG90
eXBlR2VuZXJhdG9yUmVzdW1lQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50aGlzVGltZVZhbHVlUHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNUaGlzVGltZVZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS50aGlzTnVtYmVyVmFsdWVQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RoaXNOdW1iZXJW
YWx1ZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogI2lmIEVOQUJMRShJTlRM
KQpAQCAtNzQyLDMwICs3NjEsMzYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLk51bWJl
ckZvcm1hdFByaXZhdGVOYW1lKCksIGludGwtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+TnVtYmVyRm9ybWF0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogI2Vu
ZGlmIC8vIEVOQUJMRShJTlRMKQogCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUoKSwgSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3Rv
ciwgTm9JbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5p
c1JlZ0V4cE9iamVjdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MSwgU3RyaW5nKCksIGVzU3BlY0lzUmVnRXhwT2JqZWN0LCBJc1JlZ0V4cE9iamVjdEludHJpbnNp
YyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSwgSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1Y3Rv
ciwgTm9JbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVjdFBy
aXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBlc1Nw
ZWNJc1JlZ0V4cE9iamVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zcGVjaWVzQ29uc3RydWN0b3JQcml2YXRlTmFtZSgp
LCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFNwZWNp
ZXNDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUo
KSwgcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkucmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdF
eHBQcm90b0dsb2JhbEdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkucmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyUHJpdmF0ZU5hbWUoKSwgcmVnRXhw
UHJvdG9JZ25vcmVDYXNlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5yZWdFeHBQcm90b011bHRpbGluZUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4
cFByb3RvTXVsdGlsaW5lR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5yZWdFeHBQcm90b1NvdXJjZUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFBy
b3RvU291cmNlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5yZWdFeHBQcm90b1N0aWNreUdldHRlclByaXZhdGVOYW1lKCksIHJlZ0V4cFByb3RvU3Rp
Y2t5R2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJQcml2YXRlTmFtZSgpLCByZWdFeHBQcm90b1VuaWNvZGVH
ZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvRmxhZ3NHZXR0
ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9GbGFnc0dldHRlck9iamVjdCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+cmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJv
dG9HbG9iYWxHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3Rv
SWdub3JlQ2FzZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJP
YmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVy
UHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyT2JqZWN0LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b1NvdXJjZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQ
cm90b1NvdXJjZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJv
dG9TdGlja3lHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3Qs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvVW5pY29kZUdldHRlclByaXZhdGVO
YW1lLCByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBSZWdFeHAucHJvdG90eXBlIGhlbHBlcnMuCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5yZWdFeHBCdWlsdGluRXhlY1ByaXZhdGVOYW1lKCksIGJ1aWx0aW5SZWdFeHBFeGVjLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBDcmVhdGVQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygpLCBlc1NwZWNSZWdF
eHBDcmVhdGUsIE5vSW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVnRXhwTWF0Y2hGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1l
KCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJlZ0V4cFByb3Rv
RnVuY1NlYXJjaEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZWdFeHBTcGxpdEZhc3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDIsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlUHJpdmF0
ZU5hbWUoKSwgbV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cmVwbGFjZVN5bWJvbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnJlZ0V4cFRlc3RGYXN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIFJlZ0V4cFRlc3RGYXN0SW50
cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwQnVpbHRpbkV4ZWNQcml2YXRl
TmFtZSwgYnVpbHRpblJlZ0V4cEV4ZWMsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cENy
ZWF0ZVByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0cmluZygp
LCBlc1NwZWNSZWdFeHBDcmVhdGUsIE5vSW50cmluc2ljKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwTWF0Y2hQ
cml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHJlZ0V4
cFByb3RvdHlwZUhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoQ29kZUdlbmVy
YXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5o
YXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdFByaXZhdGVOYW1lKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90eXBlSGFzT2JzZXJ2
YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXRDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFkdmFuY2VTdHJpbmdJbmRleFBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhw
UHJvdG90eXBlQWR2YW5jZVN0cmluZ0luZGV4Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBFeGVjUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdFeHBQcm90b3R5cGVS
ZWdFeHBFeGVjQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5yZWdFeHBNYXRjaEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAxLCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+cmVnRXhwU2VhcmNoRmFzdFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDEsIFN0cmluZygpLCByZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwU3BsaXRGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2VQcml2
YXRlTmFtZSwgbV9yZWdFeHBQcm90b3R5cGUtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cmVwbGFjZVN5bWJvbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFRlc3RGYXN0
UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMSwgU3RyaW5nKCksIHJl
Z0V4cFByb3RvRnVuY1Rlc3RGYXN0LCBSZWdFeHBUZXN0RmFzdEludHJpbnNpYyksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKIAogICAgICAgICAvLyBTdHJpbmcucHJvdG90eXBl
IGhlbHBlcnMuCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5zdHJpbmdJbmNsdWRlc0ludGVybmFsUHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVz
SW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdT
cGxpdEZhc3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIFN0
cmluZygpLCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5zdHJpbmdTdWJzdHJJbnRlcm5hbFByaXZhdGVOYW1lKCksIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGJ1aWx0aW5TdHJpbmdTdWJzdHJJ
bnRlcm5hbCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmhhc09ic2Vy
dmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHN0cmluZ1Byb3RvdHlwZUhhc09ic2VydmFibGVT
aWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1ZGVzSW50ZXJuYWxQcml2YXRlTmFtZSwgSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ0luY2x1
ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5zdHJpbmdTcGxpdEZhc3RQcml2
YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5n
UHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAor
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+c3RyaW5nU3Vic3Ry
SW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJp
bmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVybmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogICAgIH07CiAgICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxz
LCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2JhbHMpKTsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAppbmRleCBhYmE3
NWFhMjU4M2M0YzNlNWQzMGY5M2JmMmFhNjA0YTY3OTU4NmRiLi5hMzI0MDU1MGMwM2E3MTE5MGE5
MjAwZDhiNmZmNTc0NGZlOWRjYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKaW5kZXggOGEy
N2Q5MWU3NTU2OTk4YTcyNzllZjgzZmU2NjA4ZDQzNGJjMGUxZS4uZmVmZGVjZGYwM2I2NGU2ZGYz
YjQxMDBkNjFiNmE0NDdjZmFmMmQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlMKIAogICAgIEpTVmFsdWUgZGVmZXJyZWQg
PSBuZXdQcm9taXNlQ2FwYWJpbGl0eShleGVjLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAKLSAgICBKU1ZhbHVlIHByb21pc2UgPSBk
ZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlz
ZVByaXZhdGVOYW1lKCkpOworICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVj
LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUHJpdmF0ZU5hbWUpOwogICAgIEFTU0VSVChwcm9t
aXNlLmluaGVyaXRzKEpTSW50ZXJuYWxQcm9taXNlOjppbmZvKCkpKTsKICAgICBKU1ZhbHVlIHJl
c29sdmUgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQu
Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVO
YW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKaW5k
ZXggMDIwMmUxNzljZjQ3M2M4Nzc1MzQxNmRhZWVlNGE3NTgyZGRhZGVhYi4uNTZlMmY1YWVmOTIw
MTM5MDJmYjJmNzE2YzcyZGI0NTZmYmI2MDFjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCiAKLSNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNp
bmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgpAQCAtNTksMTAgKzU4LDEwIEBAIEpTUHJvbWlzZTo6SlNQcm9t
aXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB2b2lkIEpTUHJvbWlzZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VTdGF0
ZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihTdGF0dXM6OlBl
bmRpbmcpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlRnVsZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkp
OwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJv
bWlzZVJlamVjdFJlYWN0aW9uc1ByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOwotICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJlc3Vs
dFByaXZhdGVOYW1lKCksIGpzVW5kZWZpbmVkKCkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvbWlzZVN0YXRlUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihTdGF0dXM6OlBlbmRpbmcpKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbFJlYWN0aW9uc1ByaXZhdGVOYW1lLCBqc1VuZGVmaW5l
ZCgpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VSZWplY3RS
ZWFjdGlvbnNQcml2YXRlTmFtZSwganNVbmRlZmluZWQoKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCkp
OwogfQogCiB2b2lkIEpTUHJvbWlzZTo6aW5pdGlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhlY3V0b3IpCkBAIC03OSwxNCArNzgs
MTQgQEAgdm9pZCBKU1Byb21pc2U6OmluaXRpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHUKIAogYXV0byBKU1Byb21pc2U6OnN0YXR1cyhW
TSYgdm0pIGNvbnN0IC0+IFN0YXR1cwogewotICAgIEpTVmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VTdGF0ZVByaXZhdGVO
YW1lKCkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb21pc2VTdGF0ZVByaXZhdGVOYW1lKTsKICAgICBBU1NFUlQodmFsdWUuaXNVSW50MzIo
KSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFN0YXR1cz4odmFsdWUuYXNVSW50MzIoKSk7CiB9
CiAKIEpTVmFsdWUgSlNQcm9taXNlOjpyZXN1bHQoVk0mIHZtKSBjb25zdAogewotICAgIHJldHVy
biBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VS
ZXN1bHRQcml2YXRlTmFtZSgpKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm9taXNlUmVzdWx0UHJpdmF0ZU5hbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVy
cmVkLmNwcAppbmRleCA2NWQ3MjM4NzZhMDdjYjQxNjFjYjU5Y2U2MjRkYmFmMmFkMGI2MzdiLi4w
YWFkMzcwNzE2MWQ0NGE1ZDVhYjA4MmNmNWYzMjI3NWJiMDk3MjkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw3ICs1
OSw3IEBAIEpTUHJvbWlzZURlZmVycmVkKiBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsCiAKICAgICBKU1ZhbHVlIGRlZmVycmVkID0g
bmV3UHJvbWlzZUNhcGFiaWxpdHkoZXhlYywgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnBy
b21pc2VDb25zdHJ1Y3RvcigpKTsKIAotICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdl
dChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5h
bWUoKSk7CisgICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3Bl
cnR5TmFtZXMtPnByb21pc2VQcml2YXRlTmFtZSk7CiAgICAgQVNTRVJUKHByb21pc2UuaW5oZXJp
dHMoSlNQcm9taXNlOjppbmZvKCkpKTsKICAgICBKU1ZhbHVlIHJlc29sdmUgPSBkZWZlcnJlZC5n
ZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVzb2x2ZVByaXZhdGVO
YW1lKCkpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1lKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcAppbmRleCA3
YmZkOGE5YTQ3YjE1ZTY4N2NlOWM2YTczN2I0ZmJiY2FlOTBmNjExLi5jNmZlZGU3YWRhZjEwMDVl
MTZjMWI3NDRjMjI3ZTA2ZTYzZGZjYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4K
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcgKzI2LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAKLSNpbmNsdWRlICJC
dWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCkBAIC00MCwy
MyArMzgsMjMgQEAgdm9pZCBKU1N0cmluZ0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqIGl0ZXJhdGUKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2
YXRlTmFtZSgpLCBpdGVyYXRlZFN0cmluZyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1l
KCksIGpzTnVtYmVyKDApKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0
ZXJhdGVkU3RyaW5nUHJpdmF0ZU5hbWUsIGl0ZXJhdGVkU3RyaW5nKTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUs
IGpzTnVtYmVyKDApKTsKIH0KIAogSlNWYWx1ZSBKU1N0cmluZ0l0ZXJhdG9yOjppdGVyYXRlZFZh
bHVlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMt
PnZtKCksIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRT
dHJpbmdQcml2YXRlTmFtZSgpKTsKKyAgICByZXR1cm4gZ2V0RGlyZWN0KGV4ZWMtPnZtKCksIGV4
ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSk7CiB9CiAK
IEpTU3RyaW5nSXRlcmF0b3IqIEpTU3RyaW5nSXRlcmF0b3I6OmNsb25lKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTVmFsdWUgaXRlcmF0ZWRTdHJp
bmcgPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJh
dGVkU3RyaW5nUHJpdmF0ZU5hbWUoKSk7Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4UHJpdmF0ZU5hbWUoKSk7CisgICAgSlNWYWx1ZSBpdGVyYXRlZFN0cmluZyA9IGdldERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSk7Cisg
ICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnN0
cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUpOwogCiAgICAgYXV0byBjbG9uZSA9IEpT
U3RyaW5nSXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0
KCktPnN0cmluZ0l0ZXJhdG9yU3RydWN0dXJlKCksIGFzU3RyaW5nKGl0ZXJhdGVkU3RyaW5nKSk7
Ci0gICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpLCBuZXh0SW5kZXgpOworICAg
IGNsb25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4UHJpdmF0ZU5hbWUsIG5leHRJbmRleCk7CiAgICAgcmV0dXJuIGNsb25lOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcAppbmRleCBh
N2Y1MTBiYWI0NWZhMTJiN2E2N2VjM2ZmZGRmNTAzNGNlZjU1MWY2Li40YjYzMGMyZDdjOWNkMzRh
ZmM2ZGRhNmZkNmY0MmMyNDNkYzdhYWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hcFByb3RvdHlwZS5jcHAKQEAgLTc4LDggKzc4LDggQEAgdm9pZCBNYXBQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNOYW1lKCksIG1hcFByb3RvRnVuY1ZhbHVl
cywgRG9udEVudW0sIDApOwogCiAgICAgLy8gUHJpdmF0ZSBnZXQgLyBzZXQgb3BlcmF0aW9ucy4K
LSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5nZXRQcml2YXRlTmFtZSgpLCBtYXBQcm90b0Z1bmNHZXQsIERv
bnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zZXRQcml2YXRlTmFtZSgpLCBtYXBQcm90
b0Z1bmNTZXQsIERvbnRFbnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5nZXRQcml2YXRlTmFtZSwgbWFwUHJvdG9GdW5j
R2V0LCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2V0UHJpdmF0ZU5hbWUsIG1hcFByb3RvRnVuY1NldCwg
RG9udEVudW0sIDIpOwogCiAgICAgSlNGdW5jdGlvbiogZW50cmllcyA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5lbnRyaWVzUHVibGljTmFtZSgpLnN0cmluZygpLCBtYXBQcm90b0Z1bmNFbnRyaWVzKTsKICAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwgZW50cmllcywgRG9udEVudW0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDNjMjkzZmJiNjY0ZjU2NjA0OGZiODhjYzM1ZGY2NzJlYjlhMDNkNDEuLjA4ZGExZGJmYWQy
MjNmNTk1ZDUzZDkyMTVmMTk2YzEzYTUyZjE5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxLDcgKzIxLDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCi0j
aW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgog
I2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCkBAIC0x
MDAsMTAgKzk5LDEwIEBAIHZvaWQgT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqCiAgICAgLy8gbm8uIG9mIGFy
Z3VtZW50cyBmb3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250
RW51bSB8IERvbnREZWxldGUpOwogCi0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUHJpdmF0ZU5h
bWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIERvbnRFbnVtLCAyKTsKLSAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yRGVm
aW5lUHJvcGVydHksIERvbnRFbnVtLCAzKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRQcm90b3R5
cGVPZlByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YsIERvbnRF
bnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5h
bWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBEb250RW51bSwgMSk7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+Y3JlYXRlUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlLCBEb250RW51
bSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+ZGVmaW5lUHJvcGVydHlQcml2YXRlTmFtZSwgb2JqZWN0Q29uc3RydWN0b3JE
ZWZpbmVQcm9wZXJ0eSwgRG9udEVudW0sIDMpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmdldFByb3RvdHlwZU9mUHJpdmF0ZU5h
bWUsIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YsIERvbnRFbnVtLCAxKTsKKyAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5n
ZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUsIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlOYW1lcywgRG9udEVudW0sIDEpOwogfQogCiBKU0Z1bmN0aW9uKiBPYmplY3RDb25zdHJ1
Y3Rvcjo6YWRkRGVmaW5lUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVmbGVjdE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0
T2JqZWN0LmNwcAppbmRleCAxNzUxMjJmNWEwMWYzM2M1ZmEyNjZhOTY4ZDUzY2Y4NTQ1MmZlZjky
Li4wYWMzMjBmMmU4OGNhZGRjOTk1ZGRiMmU3MGUyYTY2MmJkYmFkYzE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVmbGVjdE9iamVjdC5oIgogCi0jaW5j
bHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oIgpAQCAtODYsOCArODUsOCBAQCB2b2lkIFJlZmxlY3RPYmplY3Q6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogCi0gICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkub3duS2V5c1ByaXZhdGVOYW1lKCksIHJlZmxlY3RPYmplY3RPd25LZXlzLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yUHJpdmF0ZU5hbWUoKSwgcmVmbGVjdE9iamVjdEdldE93
blByb3BlcnR5RGVzY3JpcHRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHksIDIp
OworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPm93bktleXNQcml2YXRlTmFtZSwgcmVmbGVjdE9iamVjdE93bktleXMsIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAxKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JQcml2YXRlTmFtZSwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvciwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHksIDIpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBl
LmNwcAppbmRleCBhN2JhN2M5MzFjMzA4Y2UzODQwYjdkYmNlMGNmYTUzNTUwMmU0MGVkLi40Njk5
MTgyNDY4ZTkzYzliMzA1YzNiYTRjNDFkMjQ0MjY5NGIwYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTIzLDcgKzIzLDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKIAot
I2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIK
ICNpbmNsdWRlICJDYWNoZWRDYWxsLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgi
CkBAIC0xMzgsOCArMTM3LDggQEAgdm9pZCBTdHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHIKICAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29uY2F0Iiwgc3RyaW5nUHJvdG9GdW5j
Q29uY2F0LCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mLCBEb250RW51bSwgMSk7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRleE9m
Iiwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFU
SVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwgc3RyaW5n
UHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBl
UmVwbGFjZVJlZ0V4cEludHJpbnNpYyk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5n
U3RyaW5nU2VhcmNoUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3Ry
aW5nU2VhcmNoLCBEb250RW51bSwgMik7CisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnJlcGxhY2VVc2luZ1JlZ0V4
cFByaXZhdGVOYW1lLCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAsIERvbnRFbnVt
LCAyLCBTdHJpbmdQcm90b3R5cGVSZXBsYWNlUmVnRXhwSW50cmluc2ljKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5yZXBsYWNl
VXNpbmdTdHJpbmdTZWFyY2hQcml2YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5n
U3RyaW5nU2VhcmNoLCBEb250RW51bSwgMik7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oInNsaWNlIiwgc3RyaW5nUHJvdG9GdW5jU2xpY2UsIERvbnRFbnVtLCAy
KTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3Vic3RyIiwg
c3RyaW5nUHJvdG9GdW5jU3Vic3RyLCBEb250RW51bSwgMik7CiAgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1YnN0cmluZyIsIHN0cmluZ1Byb3RvRnVuY1N1YnN0
cmluZywgRG9udEVudW0sIDIpOwpAQCAtMTc2LDcgKzE3NSw3IEBAIHZvaWQgU3RyaW5nUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIm5vcm1h
bGl6ZSIsIHN0cmluZ1Byb3RvRnVuY05vcm1hbGl6ZSwgRG9udEVudW0sIDEpOwogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJh
dG9yU3ltYm9sLCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvciwgRG9udEVudW0sIDApOwogCi0gICAg
SlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNoYXJDb2RlQXRQcml2YXRlTmFtZSgpLCBzdHJpbmdQ
cm90b0Z1bmNDaGFyQ29kZUF0LCBEb250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7Cisg
ICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmNoYXJDb2RlQXRQcml2YXRlTmFtZSwgc3RyaW5nUHJvdG9GdW5jQ2hhckNv
ZGVBdCwgRG9udEVudW0sIDEsIENoYXJDb2RlQXRJbnRyaW5zaWMpOwogCiAgICAgLy8gVGhlIGNv
bnN0cnVjdG9yIHdpbGwgYmUgYWRkZWQgbGF0ZXIsIGFmdGVyIFN0cmluZ0NvbnN0cnVjdG9yIGhh
cyBiZWVuIGJ1aWx0CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERv
bnRFbnVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVk
QXJyYXlJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5
SW5saW5lcy5oCmluZGV4IGYzZmMzMzM0NmIzNDk0OTM2ZTU5MTBjMTBjZGE4ZDZmZDM1NjY1YTEu
LjdhZjFmOWZiODY4ODVkYzAxNGQzMTAxMDBlMDA0MDQ5MjE1MjUzNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkSW5saW5lcy5oIgogI2luY2x1
ZGUgIkdlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCIKICNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0lubGluZXMuaCIKKyNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5lcy5o
IgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrQm94LmNwcAppbmRleCA3MWU0ZTMyOWI4OGI1ZTgzYzBhZTNlMzBkZjIzY2Q3MjA4Nzc3YWI0
Li5jMDljZTAyMzU3NGM3NjcyN2RjMjQ0NTBjYmIyYjk5YmEwZmY5OGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAg
LTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0YVZpZXcuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>