<?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>148560</bug_id>
          
          <creation_ts>2015-08-27 22:14:30 -0700</creation_ts>
          <short_desc>REGRESSION(r189064): Breaks 117 JSC tests. (Requested by mlam on #webkit).</short_desc>
          <delta_ts>2015-08-27 22:19:55 -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>148035</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1121577</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 22:14:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/189064 broke the build:
Breaks 117 JSC tests. (Requested by mlam 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>1121580</commentid>
    <comment_count>1</comment_count>
      <attachid>260123</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 22:15:08 -0700</bug_when>
    <thetext>Created attachment 260123
ROLLOUT of r189064

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>1121582</commentid>
    <comment_count>2</comment_count>
      <attachid>260123</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 22:19:51 -0700</bug_when>
    <thetext>Comment on attachment 260123
ROLLOUT of r189064

Clearing flags on attachment: 260123

Committed r189085: &lt;http://trac.webkit.org/changeset/189085&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121583</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-27 22:19:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260123</attachid>
            <date>2015-08-27 22:15:08 -0700</date>
            <delta_ts>2015-08-27 22:19:51 -0700</delta_ts>
            <desc>ROLLOUT of r189064</desc>
            <filename>bug-148560-20150827221455.patch</filename>
            <type>text/plain</type>
            <size>156128</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTJhYTA3NDM5NWE5NTNlNDlkY2E2OGM0MzE4ZWNhMzZkZGRiNWVmLi5jMzBhNGM5MzU1ZjA1OTM0
ZDk1MzE2MDM1NzIzZmI3NzdhN2VlNTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMSBAQAogMjAxNS0wOC0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4OTA2NCBhbmQgcjE4
OTA4NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODU2MAorCisgICAgICAgIEJyZWFrcyAxMTcgSlNDIHRlc3RzLiAoUmVxdWVzdGVkIGJ5IG1sYW0g
b24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAi
W0VTNl0gQWRkIFR5cGVkQXJyYXkucHJvdG90eXBlIGZ1bmN0aW9uYWxpdHkuIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDM1CisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4OTA2NAorCisgICAgICAgICJVbmJyZWFr
IEpTQyB0ZXN0cyAoYnJva2VuIHNpbmNlIHIxODkwNjQpLiIKKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTg5MDg0CisKKzIwMTUtMDgtMjcgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxODkwNzkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDg1NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1ZTMy
NjJjYzVhNWYwOGY3M2MzNjQ2NDQ0Y2E4YzAzY2M1ZmY2YWUuLjcxYmU2YjJkYTUyMmIwOWUzMWZl
YTFhMGE1MjU5MTFhMjkxMjc1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTU1OCw3ICs1NTgsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUlVOVElNRV9TT1VSQ0VTCiAg
ICAgcnVudGltZS9KU1RlbXBsYXRlUmVnaXN0cnlLZXkuY3BwCiAgICAgcnVudGltZS9KU1R5cGVk
QXJyYXlDb25zdHJ1Y3RvcnMuY3BwCiAgICAgcnVudGltZS9KU1R5cGVkQXJyYXlQcm90b3R5cGVz
LmNwcAotICAgIHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKICAgICBydW50
aW1lL0pTVHlwZWRBcnJheXMuY3BwCiAgICAgcnVudGltZS9KU1dlYWtNYXAuY3BwCiAgICAgcnVu
dGltZS9KU1dlYWtTZXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVjYjcx
NzBhNTdhYzAwNTdkYWE3NTEwNTY3M2YzMWViZGFkZTA5YWIuLmViNjJjYTU2YTE1ZTA2YzAxOGQ1
ODViZGEzMjc2ZTc4YjJlMjhlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
NzIsOSArOTcyLDYgQEAKIAkJNTJDMDYxMUYxQUE1MUUxQzAwQjRBREJBIC8qIFJ1bnRpbWVUeXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkMwNjEx
RDFBQTUxRTFCMDBCNEFEQkEgLyogUnVudGltZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkM5NTJCNzE5QTI4OTg1MDA2OUIzODYgLyog
VHlwZVByb2ZpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MkM5NTJCNjE5QTI4OTg1MDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJDOTUyQjkxOUEyOEEx
QzAwNjlCMzg2IC8qIFR5cGVQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVByb2Zp
bGVyLmNwcCAqLzsgfTsKLQkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMgLyogSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKLQkJNTM5MTdFODQx
Qjc5MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXkucHJvdG90eXBlLmpzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U4MzFCNzkxQ0I4MDAwRUJE
MzMgLyogVHlwZWRBcnJheS5wcm90b3R5cGUuanMgKi87IH07Ci0JCTUzRjI1NkUyMUI4N0UyODAw
MEI0Qjc2OCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjI1NkUxMUI4N0UyODAwMEI0Qjc2OCAv
KiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCAqLzsgfTsKIAkJNUQ1MzcyNkYwRTFDNTQ4
ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVENTM3MjZFMEUxQzU0ODgwMDIxRTU0OSAvKiBUcmFjaW5nLmggKi87IH07
CiAJCTVENUQ4QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAw
RjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQz
NiAvKiB0ZXN0YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMg
Ki87IH07CkBAIC0yNzYxLDEwICsyNzU4LDYgQEAKIAkJNTJDMDYxMUQxQUE1MUUxQjAwQjRBREJB
IC8qIFJ1bnRpbWVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bnRp
bWVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQzk1MkI2MTlBMjg5ODUw
MDY5QjM4NiAvKiBUeXBlUHJvZmlsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZVByb2ZpbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQzk1MkI4MTlBMjhBMUMwMDY5QjM4NiAv
KiBUeXBlUHJvZmlsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwZVByb2ZpbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTM5MTdFN0ExQjc5MDZFNDAwMEVCRDMzIC8q
IEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVu
Y3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUzOTE3RTdDMUI3OTExMDYw
MDBFQkQzMyAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTM5MTdFODMxQjc5MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXku
cHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlw
ZWRBcnJheS5wcm90b3R5cGUuanM7IHBhdGggPSBidWlsdGlucy9UeXBlZEFycmF5LnByb3RvdHlw
ZS5qczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk1M0YyNTZFMTFCODdFMjgwMDBC
NEI3NjggLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0MDc1ODQxOEY0QTM3NTAwNjAyQTVEIC8qIENvbXBp
bGVSdW50aW1lVG9MTFZNSVIueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gQ29tcGlsZVJ1bnRpbWVUb0xMVk1JUi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTkzRDQzQ0NBMEJCRTA2RDg5QzU5NzA3IC8qIE1hcERhdGFJbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcERhdGFJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENTM3MjZEMEUxQzU0NkIwMDIxRTU0OSAvKiBUcmFjaW5n
LmQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVHJhY2luZy5kOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc0NCw3ICs0NzM3LDYgQEAKIAkJCQkwRjJCNjZDNTE3QjZCNUFCMDBBN0FF
M0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCAqLywKIAkJ
CQkwRjJCNjZDNjE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmggKi8sCiAJCQkJMEYyQjY2QzcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlLmggKi8sCi0JCQkJNTM5MTdFN0ExQjc5MDZFNDAwMEVCRDMzIC8q
IEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggKi8sCiAJCQkJMEYy
QjY2QzgxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
SW5saW5lcy5oICovLAogCQkJCTE0REUwRDY4MEQwMjQzMTQwMEFBQ0NBMiAvKiBKU0dsb2JhbE9i
amVjdC5jcHAgKi8sCiAJCQkJQThFODk0MzMwQ0QwNjAzRjAwMzY3MTc5IC8qIEpTR2xvYmFsT2Jq
ZWN0LmggKi8sCkBAIC00ODIxLDggKzQ4MTMsNiBAQAogCQkJCTBGMkI2NkNGMTdCNkI1QUIwMEE3
QUUzRiAvKiBKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmggKi8sCiAJCQkJMEYyQjY2RDAxN0I2QjVB
QjAwQTdBRTNGIC8qIEpTVHlwZWRBcnJheXMuY3BwICovLAogCQkJCTBGMkI2NkQxMTdCNkI1QUIw
MEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlzLmggKi8sCi0JCQkJNTNGMjU2RTExQjg3RTI4MDAwQjRC
NzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovLAotCQkJCTUzOTE3RTdDMUI3
OTExMDYwMDBFQkQzMyAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggKi8sCiAJCQkJNjUw
N0QyOTcwRTg3MUU0QTAwRDdEODk2IC8qIEpTVHlwZUluZm8uaCAqLywKIAkJCQkwRjJCNjZEMjE3
QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50OEFycmF5LmggKi8sCiAJCQkJMEYyQjY2RDMxN0I2QjVB
QjAwQTdBRTNGIC8qIEpTVWludDhDbGFtcGVkQXJyYXkuaCAqLywKQEAgLTU4MDQsNyArNTc5NCw2
IEBACiAJCQkJN0NGOUJDNUYxQjY1RDlCMTAwOURCMUVGIC8qIFJlZmxlY3RPYmplY3QuanMgKi8s
CiAJCQkJN0NGOUJDNjAxQjY1RDlCMTAwOURCMUVGIC8qIFN0cmluZ0NvbnN0cnVjdG9yLmpzICov
LAogCQkJCTdDRjlCQzYxMUI2NUQ5QjEwMDlEQjFFRiAvKiBTdHJpbmdJdGVyYXRvci5wcm90b3R5
cGUuanMgKi8sCi0JCQkJNTM5MTdFODMxQjc5MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXkucHJv
dG90eXBlLmpzICovLAogCQkJKTsKIAkJCXBhdGggPSBidWlsdGluczsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC02NDQ4LDcgKzY0MzcsNiBAQAogCQkJCTg2RTNDNjE0MTY3QkFCRDcw
MDZENzYwQSAvKiBKU0V4cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCNEFDQUYxNDg0QzlD
RTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZF
RjE3QjZCNUFCMDBBN0FFM0YgLyogSlNGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTUzOTE3RTdCMUI3OTA2RkEwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjAxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxRjBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QkEx
Nzk3NjAzRDAwOTgwMjhDIC8qIEpTRnVuY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTcwNDQsNyArNzAzMiw2IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJNTM5MTdFODQxQjc5MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJy
YXkucHJvdG90eXBlLmpzIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTc5MTIsNyArNzg5OSw2IEBACiAJ
CQkJQzIyNTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTNGMjU2RTIxQjg3RTI4MDAwQjRC
NzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL1R5cGVkQXJyYXkucHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL1R5cGVkQXJyYXkucHJvdG90eXBlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MjgzNDIwNDYzMzQ5YmE2ZmYzZmQyMmIwOWZjY2JhYzM4ZjQ5NTU0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5LnByb3RvdHlwZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDI4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotLy8gTm90ZSB0aGF0IHRoZSBpbnRyaXNpYyBAdHlwZWRBcnJheUxlbmd0aCBjaGVja3Mg
dGhlIHRoYXQgdGhlIGFyZ3VtZW50IHBhc3NlZCBpcyBhIHR5cGVkIGFycmF5Ci0vLyBhbmQgdGhy
b3dzIGlmIGl0IGlzIG5vdC4KLQotZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2sgLyosIHRoaXNBcmcg
Ki8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxl
bmd0aCh0aGlzKTsKLSAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJn
dW1lbnRzWzFdIDogdW5kZWZpbmVkOwotCi0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1
bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVkQXJyYXkucHJvdG90
eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWNhbGxiYWNrLkBjYWxsKHRo
aXNBcmcsIHRoaXNbaV0sIGksIHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBmaW5kKGNhbGxiYWNrIC8qIFss
IHRoaXNBcmddICovKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICB2YXIgbGVuZ3RoID0gQHR5
cGVkQXJyYXlMZW5ndGgodGhpcyk7Ci0gICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3Ro
ID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJh
Y2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUeXBlZEFy
cmF5LnByb3RvdHlwZS5maW5kIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBsZXQgZWxlbSA9IHRo
aXNbaV07Ci0gICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCBlbGVtLCBpLCB0aGlz
KSkKLSAgICAgICAgICAgIHJldHVybiBlbGVtOwotICAgIH0KLSAgICByZXR1cm4gdW5kZWZpbmVk
OwotfQotCi1mdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCi17
Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0
aGlzKTsKLSAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRz
WzFdIDogdW5kZWZpbmVkOwotCi0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9u
IikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLmZp
bmRJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNB
cmcsIHRoaXNbaV0sIGksIHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgfQotICAg
IHJldHVybiAtMTsKLX0KLQotZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFjayAvKiBbLCB0aGlzQXJn
XSAqLykKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0gICAgdmFyIGxlbmd0aCA9IEB0eXBlZEFycmF5
TGVuZ3RoKHRoaXMpOwotICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBh
cmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7Ci0KLSAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAi
ZnVuY3Rpb24iKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiVHlwZWRBcnJheS5wcm90
b3R5cGUuZmluZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICAgICAgY2FsbGJhY2suQGNhbGwodGhp
c0FyZywgdGhpc1tpXSwgaSwgdGhpcyk7Ci19Ci0KLWZ1bmN0aW9uIHNvbWUoY2FsbGJhY2sgLyog
WywgdGhpc0FyZ10gKi8pCi17Ci0gICAgLy8gMjIuMi4zLjI0Ci0gICAgInVzZSBzdHJpY3QiOwot
ICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLSAgICB2YXIgdGhpc0Fy
ZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOwotCi0g
ICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3
IEBUeXBlRXJyb3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLnNvbWUgY2FsbGJhY2sgbXVzdCBiZSBh
IGZ1bmN0aW9uIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB0aGlzW2ldLCBpLCB0aGlzKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
ZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQotewotICAgIC8vIDIyLjIuMy4yNQotICAgICJ1c2Ug
c3RyaWN0IjsKLQotICAgIGZ1bmN0aW9uIG1pbihhLCBiKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGEgPCBiID8gYSA6IGI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBzcmMsIHNy
Y0luZGV4LCBzcmNFbmQsIHdpZHRoLCBjb21wYXJhdG9yKQotICAgIHsKLSAgICAgICAgdmFyIGxl
ZnQgPSBzcmNJbmRleDsKLSAgICAgICAgdmFyIGxlZnRFbmQgPSBtaW4obGVmdCArIHdpZHRoLCBz
cmNFbmQpOwotICAgICAgICB2YXIgcmlnaHQgPSBsZWZ0RW5kOwotICAgICAgICB2YXIgcmlnaHRF
bmQgPSBtaW4ocmlnaHQgKyB3aWR0aCwgc3JjRW5kKTsKLQotICAgICAgICBmb3IgKHZhciBkc3RJ
bmRleCA9IGxlZnQ7IGRzdEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0SW5kZXgpIHsKLSAgICAgICAg
ICAgIGlmIChyaWdodCA8IHJpZ2h0RW5kKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGxlZnQgPj0g
bGVmdEVuZCB8fCBjb21wYXJhdG9yKHNyY1tyaWdodF0sIHNyY1tsZWZ0XSkgPCAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleF0gPSBzcmNbcmlnaHQrK107Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IHNyY1tsZWZ0KytdOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycmF5LCB2YWx1ZUNvdW50LCBjb21wYXJhdG9y
KQotICAgIHsKLSAgICAgICAgdmFyIGJ1ZmZlciA9IFsgXTsKLSAgICAgICAgYnVmZmVyLmxlbmd0
aCA9IHZhbHVlQ291bnQ7Ci0KLSAgICAgICAgdmFyIGRzdCA9IGJ1ZmZlcjsKLSAgICAgICAgdmFy
IHNyYyA9IGFycmF5OwotCi0gICAgICAgIGZvciAodmFyIHdpZHRoID0gMTsgd2lkdGggPCB2YWx1
ZUNvdW50OyB3aWR0aCAqPSAyKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBzcmNJbmRleCA9IDA7
IHNyY0luZGV4IDwgdmFsdWVDb3VudDsgc3JjSW5kZXggKz0gMiAqIHdpZHRoKQotICAgICAgICAg
ICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVDb3VudCwgd2lkdGgsIGNvbXBh
cmF0b3IpOwotCi0gICAgICAgICAgICB2YXIgdG1wID0gc3JjOwotICAgICAgICAgICAgc3JjID0g
ZHN0OwotICAgICAgICAgICAgZHN0ID0gdG1wOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNy
YyAhPSBhcnJheSkgewotICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHZhbHVlQ291bnQ7
IGkrKykKLSAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHNyY1tpXTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLQotICAgIGlm
IChsZW5ndGggPCAyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAodHlwZW9mIGNvbXBhcmF0
b3IgPT0gImZ1bmN0aW9uIikKLSAgICAgICAgbWVyZ2VTb3J0KHRoaXMsIGxlbmd0aCwgY29tcGFy
YXRvcik7Ci0gICAgZWxzZQotICAgICAgICBAdHlwZWRBcnJheVNvcnQodGhpcyk7Ci0gICAgCi0g
ICAgcmV0dXJuIHRoaXM7Ci19Ci0KLWZ1bmN0aW9uIHJlZHVjZShjYWxsYmFjayAvKiBbLCBpbml0
aWFsVmFsdWVdICovKQotewotICAgIC8vIDIyLjIuMy4xOQotICAgICJ1c2Ugc3RyaWN0IjsKLQot
ICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLQotICAgIGlmICh0eXBl
b2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KCJUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
Iik7Ci0KLSAgICBpZiAobGVuZ3RoID09PSAwICYmIGFyZ3VtZW50cy5sZW5ndGggPCAyKQotICAg
ICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlIG9m
IGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpOwotCi0gICAgdmFyIGFjY3VtdWxh
dG9yLCBrID0gMDsKLSAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpCi0gICAgICAgIGFjY3Vt
dWxhdG9yID0gYXJndW1lbnRzWzFdOwotICAgIGVsc2UKLSAgICAgICAgYWNjdW11bGF0b3IgPSB0
aGlzW2srK107Ci0KLSAgICBmb3IgKDsgayA8IGxlbmd0aDsgaysrKQotICAgICAgICBhY2N1bXVs
YXRvciA9IGNhbGxiYWNrLkBjYWxsKHVuZGVmaW5lZCwgYWNjdW11bGF0b3IsIHRoaXNba10sIGss
IHRoaXMpOwotCi0gICAgcmV0dXJuIGFjY3VtdWxhdG9yOwotfQotCi1mdW5jdGlvbiByZWR1Y2VS
aWdodChjYWxsYmFjayAvKiBbLCBpbml0aWFsVmFsdWVdICovKQotewotICAgIC8vIDIyLjIuMy4y
MAotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0
aCh0aGlzKTsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdo
dCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLQotICAgIGlmIChsZW5ndGggPT09IDAg
JiYgYXJndW1lbnRzLmxlbmd0aCA8IDIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJU
eXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGlu
aXRpYWwgdmFsdWUiKTsKLQotICAgIHZhciBhY2N1bXVsYXRvciwgayA9IGxlbmd0aCAtIDE7Ci0g
ICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKQotICAgICAgICBhY2N1bXVsYXRvciA9IGFyZ3Vt
ZW50c1sxXTsKLSAgICBlbHNlCi0gICAgICAgIGFjY3VtdWxhdG9yID0gdGhpc1trLS1dOwotCi0g
ICAgZm9yICg7IGsgPj0gMDsgay0tKQotICAgICAgICBhY2N1bXVsYXRvciA9IGNhbGxiYWNrLkBj
YWxsKHVuZGVmaW5lZCwgYWNjdW11bGF0b3IsIHRoaXNba10sIGssIHRoaXMpOwotCi0gICAgcmV0
dXJuIGFjY3VtdWxhdG9yOwotfQotCi1mdW5jdGlvbiBtYXAoY2FsbGJhY2sgLyosIHRoaXNBcmcg
Ki8pCi17Ci0gICAgLy8gMjIuMi4zLjE4Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFyIGxl
bmd0aCA9IEB0eXBlZEFycmF5TGVuZ3RoKHRoaXMpOwotCi0gICAgaWYgKHR5cGVvZiBjYWxsYmFj
ayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVkQXJy
YXkucHJvdG90eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLQotICAgIHZh
ciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmlu
ZWQ7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgc3BlY2llcyBjb25zdHJ1Y3Rvci4K
LSAgICB2YXIgcmVzdWx0ID0gbmV3IHRoaXMuY29uc3RydWN0b3IobGVuZ3RoKTsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBtYXBwZWRWYWx1ZSA9
IGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIHRoaXNbaV0sIGksIHRoaXMpOwotICAgICAgICByZXN1
bHRbaV0gPSBtYXBwZWRWYWx1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVu
Y3Rpb24gZmlsdGVyKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQotewotICAgICJ1c2Ugc3RyaWN0
IjsKLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLQotICAgIGlm
ICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJBcnJheS5wcm90b3R5cGUubWFwIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIp
OwotCi0gICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sx
XSA6IHVuZGVmaW5lZDsKLQotICAgIHZhciBrZXB0ID0gW107Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IHRoaXNbaV07Ci0gICAg
ICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaSwgdGhpcykpCi0gICAgICAg
ICAgICBrZXB0LnB1c2godmFsdWUpOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSBhIHNwZWNpZXMgY29uc3RydWN0b3IuCi0gICAgdmFyIHJlc3VsdCA9IG5ldyB0aGlzLmNv
bnN0cnVjdG9yKGtlcHQubGVuZ3RoKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2VwdC5s
ZW5ndGg7IGkrKykKLSAgICAgICAgcmVzdWx0W2ldID0ga2VwdFtpXTsKLQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIHRvTG9jYWxlU3RyaW5nKCkKLXsKLSAgICAidXNlIHN0cmlu
dCI7Ci0KLSAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7Ci0KLSAgICBp
ZiAobGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiAiIjsKLQotICAgIHZhciBzdHJpbmcgPSB0
aGlzWzBdLnRvTG9jYWxlU3RyaW5nKCk7Ci0gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW5ndGg7
IGkrKykKLSAgICAgICAgc3RyaW5nICs9ICIsIiArIHRoaXNbaV0udG9Mb2NhbGVTdHJpbmcoKTsK
LQotICAgIHJldHVybiBzdHJpbmc7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggMmRiMjU5MjZkMTkwYWJlOTY4YzdmYTI0MTNk
ZmFmMTczZjg0YjBhYy4uM2NjMzUxYjMxZDdhZjEzZTFjNWI4OGRjNDVlZDI0NjQ4MDRhYjMyZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cApAQCAtNDYsNiArNDYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNT
dGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0NvbmNh
dChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNKb2luKEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmgKaW5kZXggMmQ5MzNiZDZjNzEyOGU3YTRhYjI4ODBiMWIzN2VkZjE1OWVh
N2Q5My4uMzk0MTJjMjIwNWJkYzdhZTIzZDNkMjJlNGE1ZDllODQyOTI1MGMyYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00Niw3ICs0
Niw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b0Z1bmNWYWx1ZXMoRXhlY1N0YXRlKik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5k
ZXggZDA4N2NjYjljMzI3NTlhNGIzMWNlYTU2ZjQ1NWU0MmFkMTA3MzVjNi4uMTYzYjExNjEwNDFj
Y2RiMzVhZDUyOTc2Y2FmZTZiZDExZGZjOGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yOTEsOCArMjkxLDYgQEAKICAg
ICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMp
IFwKICAgICBtYWNybyhUeXBlRXJyb3IpIFwKLSAgICBtYWNybyh0eXBlZEFycmF5TGVuZ3RoKSBc
Ci0gICAgbWFjcm8odHlwZWRBcnJheVNvcnQpIFwKICAgICBtYWNybyh1bmRlZmluZWQpIFwKICAg
ICBtYWNybyhCdWlsdGluTG9nKSBcCiAgICAgbWFjcm8oaG9tZU9iamVjdCkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
LmgKaW5kZXggMjc5MDlhNDE3ODkyOGRhMGM3MmNlNjBmNzA2OTRhZWU0ZWNhNDVjOS4uYTNhNzU2
Y2Y1NTMyMWY2ODhiNzVkNzIzYTAxNzgzZjUwZTdlYzMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCkBAIC04
Myw1OSArODMsMTAgQEAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgQ2xhc3NJbmZvKiBnZXRGbG9h
dDY0QXJyYXlDbGFzc0luZm8oKTsKIC8vICAgICB0ZW1wbGF0ZTxUPiBzdGF0aWMgVDo6VHlwZSBj
b252ZXJ0VG8odWludDhfdCk7CiAvLyB9OwogCi0vLyBUaGUgRUNNQSA2IHNwZWMgc3RhdGVzIHRo
YXQgZmxvYXRpbmcgcG9pbnQgVHlwZWQgQXJyYXlzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcg
b3JkZXJpbmc6Ci0vLwotLy8gLUluaWZpbml0eSA8IG5lZ2F0aXZlIGZpbml0ZSBudW1iZXJzIDwg
LTAuMCA8IDAuMCA8IHBvc2l0aXZlIGZpbml0ZSBudW1iZXJzIDwgSW5maW5pdHkgPCBOYU4KLS8v
IE5vdGU6IHJlZ2FyZGxlc3Mgb2YgdGhlIHNpZ24gb3IgZXhhY3QgcmVwcmVzZW50YXRpb24gb2Yg
YSBOYU4gaXQgaXMgZ3JlYXRlciB0aGFuIGFsbCBvdGhlciB2YWx1ZXMuCi0vLwotLy8gQW4gaW50
ZXJlc3RpbmcgZmFjdCBhYm91dCBJRUVFIDc1NCBmbG9hdGluZyBwb2ludCBudW1iZXJzIGlzIHRo
YXQgaGF2ZSBhbiBhZGphY2VudCByZXByZXNlbnRhdGlvbgotLy8gaS5lLiBmb3IgYW55IGZpbml0
ZSBmbG9hdGluZyBwb2ludCB4IHRoZXJlIGRvZXMgbm90IGV4aXN0IGEgZmluaXRlIGZsb2F0aW5n
IHBvaW50IHkgc3VjaCB0aGF0Ci0vLyAoKGZsb2F0KSAoKGludCkgeCArIDEpKSA+IHkgPiB4LiBU
aHVzIGlmIHdlIGhhdmUgYW4gYXJyYXkgb2YgZmxvYXRpbmcgcG9pbnRzIGlmIHdlIHZpZXcgaXQg
YXMgYW4KLS8vIGFycmF5IG9mIHNpZ25lZCBiaXQgaW50ZWdlcnMgaXQgd2lsbCBzb3J0IGluIHRo
ZSBmb3JtYXQgd2UgZGVzaXJlLgotLy8KLS8vIEFsbCB0aGUgcHJvY2Vzc29ycyB3ZSBzdXBwb3J0
LCBob3dldmVyLCB1c2UgdHdvcyBjb21wbGVtZW50LiBGb3J0dW5hdGVseSwgaWYgeW91IGNvbXBh
cmUgYSBzaWduZWQKLS8vIGJpdCBudW1iZXIgYXMgaWYgaXQgd2VyZSB0d29zIGNvbXBsZW1lbnQg
dGhlIHJlc3VsdCB3aWxsIGJlIGNvcnJlY3QgYXNzdW1pbmcgYm90aCBudW1iZXJzIGFyZSBub3QK
LS8vIG5lZ2F0aXZlLiBlLmcuCi0vLwotLy8gICAgLSA8PT4gLSA9IHJldmVyc2VkICgtMzAgPiAt
MjAgPSB0cnVlKQotLy8gICAgKyA8PT4gKyA9IG9yZGVyZWQgKDMwID4gMjAgPSB0cnVlKQotLy8g
ICAgLSA8PT4gKyA9IG9yZGVyZWQgKC0zMCA+IDIwID0gZmFsc2UpCi0vLyAgICArIDw9PiAtID0g
b3JkZXJlZCAoMzAgPiAtMjAgPSB0cnVlKQotLy8KLS8vIEZvciBOYU4sIHdlIG5vcm1hbGl6ZSB0
aGUgTmFOIHRvIGEgcGV0aWN1bGFyIHJlcHJlc2VudGF0aW9uOyB0aGUgc2lnbiBiaXQgaXMgMCwg
YWxsIGV4cG9uZW50aWFsIGJpdHMKLS8vIGFyZSAxIGFuZCBvbmx5IHRoZSBNU0Igb2YgdGhlIG1h
bnRpc3NhIGlzIDEuIFNvLCBOYU4gaXMgcmVjb2duaXplZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ3Jh
bCBudW1iZXJzLgotCi10ZW1wbGF0ZTx0eXBlbmFtZSBGbG9hdFR5cGUsIHR5cGVuYW1lIEludGVn
cmFsVHlwZT4KLXZvaWQgc29ydEZsb2F0KEZsb2F0VHlwZSogZmxvYXRBcnJheSwgdW5zaWduZWQg
bGVuZ3RoKQotewotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludGVncmFsVHlwZSkgPT0gc2l6
ZW9mKEZsb2F0VHlwZSksICJmbG9hdGluZyBwb2ludCB0eXBlIGFuZCBpbnRlZ3JhbCB0eXBlIG11
c3QgYmUgdGhlIHNhbWUgc2l6ZSIpOwotCi0gICAgLy8gV2UgbmVlZCB0aGlzIHVuaW9uIGJlY2F1
c2Ugb2YgdGhlIHN0cmljdCBhbGlhc2luZyBydWxlIGluIEMvQysrLgotICAgIHVuaW9uIFR5cGVD
b252ZXJ0ZXIgewotICAgICAgICBGbG9hdFR5cGUgZmxvYXRUeXBlOwotICAgICAgICBJbnRlZ3Jh
bFR5cGUgaW50VHlwZTsKLSAgICB9OwotCi0gICAgLy8gU2luY2UgdGhlcmUgbWlnaHQgYmUgYW5v
dGhlciB2aWV3IHRoYXQgc2V0cyB0aGUgYml0cyBvZgotICAgIC8vIG91ciBmbG9hdHMgdG8gTmFO
cyB3aXRoIG5lZ2F0aXZlIHNpZ24gYml0cyB3ZSBuZWVkIHRvCi0gICAgLy8gcHVyaWZ5IHRoZSBh
cnJheS4KLSAgICBUeXBlQ29udmVydGVyKiB1bmlvbkFycmF5ID0gcmVpbnRlcnByZXRfY2FzdDxU
eXBlQ29udmVydGVyKj4oZmxvYXRBcnJheSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKQotICAgICAgICB1bmlvbkFycmF5W2ldLmZsb2F0VHlwZSA9IHB1cmlmeU5h
Tih1bmlvbkFycmF5W2ldLmZsb2F0VHlwZSk7Ci0KLSAgICBzdGQ6OnNvcnQodW5pb25BcnJheSwg
dW5pb25BcnJheSArIGxlbmd0aCwgW10oVHlwZUNvbnZlcnRlciBhLCBUeXBlQ29udmVydGVyIGIp
IHsKLSAgICAgICAgaWYgKGEuaW50VHlwZSA+PSAwIHx8IGIuaW50VHlwZSA+PSAwKQotICAgICAg
ICAgICAgcmV0dXJuIGEuaW50VHlwZSA8IGIuaW50VHlwZTsKLSAgICAgICAgcmV0dXJuIGEuaW50
VHlwZSA+IGIuaW50VHlwZTsKLSAgICB9KTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRv
cj4KIGNsYXNzIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3IDogcHVibGljIEpTQXJyYXlCdWZmZXJW
aWV3IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQXJyYXlCdWZmZXJWaWV3IEJhc2U7Ci0gICAg
dHlwZWRlZiB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIEVsZW1lbnRUeXBlOwotCiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
bzsKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IHNpemVvZih0eXBl
bmFtZSBBZGFwdG9yOjpUeXBlKTsKQEAgLTIxNyw0NyArMTY4LDcgQEAgcHVibGljOgogICAgICAg
ICBzZXRJbmRleFF1aWNrbHlUb05hdGl2ZVZhbHVlKGksIHZhbHVlKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotCi0gICAgc3RhdGljIE9wdGlvbmFsPHR5cGVuYW1lIEFkYXB0b3I6OlR5
cGU+IHRvQWRhcHRvck5hdGl2ZUZyb21WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNW
YWx1ZSkKLSAgICB7Ci0gICAgICAgIHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUgdmFsdWUgPSB0b05h
dGl2ZUZyb21WYWx1ZTxBZGFwdG9yPihleGVjLCBqc1ZhbHVlKTsKLSAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIE51bGxvcHQ7Ci0gICAgICAgIHJl
dHVybiB2YWx1ZTsKLSAgICB9Ci0KLSAgICBib29sIHNldFJhbmdlVG9WYWx1ZShFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIEpTVmFsdWUganNWYWx1ZSkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCgwIDw9IHN0YXJ0ICYmIHN0YXJ0IDw9IGVuZCAmJiBlbmQgPD0g
bV9sZW5ndGgpOwotCi0gICAgICAgIHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUgdmFsdWUgPSB0b05h
dGl2ZUZyb21WYWx1ZTxBZGFwdG9yPihleGVjLCBqc1ZhbHVlKTsKLSAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIC8v
IFdlIG1pZ2h0IHdhbnQgdG8gZG8gc29tZXRoaW5nIGZhc3RlciBoZXJlIChlLmcuIFNJTUQpIGlm
IHRoaXMgaXMgdG9vIHNsb3cuCi0gICAgICAgIHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUqIGFycmF5
ID0gdHlwZWRWZWN0b3IoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBl
bmQ7ICsraSkKLSAgICAgICAgICAgIGFycmF5W2ldID0gdmFsdWU7Ci0KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotCi0gICAgdm9pZCBzb3J0KCkKLSAgICB7Ci0gICAgICAgIHR5cGVuYW1l
IEFkYXB0b3I6OlR5cGUqIGFycmF5ID0gdHlwZWRWZWN0b3IoKTsKLSAgICAgICAgc3dpdGNoIChB
ZGFwdG9yOjp0eXBlVmFsdWUpIHsKLSAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoKLSAgICAgICAg
ICAgIHNvcnRGbG9hdDxmbG9hdCwgaW50MzJfdD4ocmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KGFy
cmF5KSwgbV9sZW5ndGgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUZs
b2F0NjQ6Ci0gICAgICAgICAgICBzb3J0RmxvYXQ8ZG91YmxlLCBpbnQ2NF90PihyZWludGVycHJl
dF9jYXN0PGRvdWJsZSo+KGFycmF5KSwgbV9sZW5ndGgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBzdGQ6OnNvcnQoYXJyYXksIGFycmF5ICsgbV9s
ZW5ndGgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KKyAgICAKICAg
ICBib29sIGNhbkFjY2Vzc1JhbmdlUXVpY2tseSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCkKICAgICB7CiAgICAgICAgIHJldHVybiBvZmZzZXQgPD0gbV9sZW5ndGgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdJbmxpbmVzLmgKaW5kZXggMmJlNGY0NDI2NDY4YTVmNGZmZjAxMjBhY2JhZTZmNDhj
MjA0NTRkZS4uZTllZDFlOTk4YWE5YTUwOGQxYWVmMDUzZmFlODgyZjQyNjNkYzlkMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJEZWZl
ckdDLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgi
Ci0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3LmgiCiAjaW5jbHVkZSAiUmVqZWN0LmgiCiAjaW5jbHVkZSAiVHlwZWRBcnJheXMuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGViMWVmZDlkNTZjNWU1MjVmYTZkZDRkNGVlOTgzYzlj
Yzc4ZmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlRnVuY3Rpb25zLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOTcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnNfaAotI2RlZmluZSBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9uc19oCi0KLSNpbmNsdWRlICJBcnJheVByb3RvdHlwZS5o
IgotI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgotI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9yLmgi
Ci0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKLSNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5j
bHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdK
b2luZXIuaCIKLSNpbmNsdWRlICJUeXBlZEFycmF5QWRhcHRvcnMuaCIKLSNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1pbmxpbmUgdW5zaWduZWQgYXJn
dW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChFeGVjU3RhdGUqIGV4ZWMsIGludCBhcmd1
bWVudCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCB1bmRlZmluZWRWYWx1ZSA9IDApCi17Ci0g
ICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICBpZiAodmFs
dWUuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFZhbHVlOwotCi0gICAg
ZG91YmxlIGluZGV4RG91YmxlID0gdmFsdWUudG9JbnRlZ2VyKGV4ZWMpOwotICAgIGlmIChpbmRl
eERvdWJsZSA8IDApIHsKLSAgICAgICAgaW5kZXhEb3VibGUgKz0gbGVuZ3RoOwotICAgICAgICBy
ZXR1cm4gaW5kZXhEb3VibGUgPCAwID8gMCA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleERv
dWJsZSk7Ci0gICAgfQotICAgIHJldHVybiBpbmRleERvdWJsZSA+IGxlbmd0aCA/IGxlbmd0aCA6
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleERvdWJsZSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jU2V0KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMu
MjIKLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+
dGhpc1ZhbHVlKCkpOwotCi0gICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJFeHBlY3Rl
ZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKSk7Ci0KLSAgICBKU09iamVjdCogc291cmNlQXJyYXkg
PSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwot
ICAgIGlmICghc291cmNlQXJyYXkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJGaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYW4gb2JqZWN0
IikpOwotCi0gICAgdW5zaWduZWQgb2Zmc2V0OwotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPj0gMikgewotICAgICAgICBvZmZzZXQgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50
b1VJbnQzMihleGVjKTsKLSAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9IGVsc2UK
LSAgICAgICAgb2Zmc2V0ID0gMDsKLQotICAgIHVuc2lnbmVkIGxlbmd0aCA9IHNvdXJjZUFycmF5
LT5nZXQoZXhlYywgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvVUludDMyKGV4
ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHRoaXNPYmplY3QtPnNldChleGVjLCBz
b3VyY2VBcnJheSwgb2Zmc2V0LCBsZW5ndGgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRW50
cmllcyhFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjYKLSAgICBWaWV3Q2xhc3Mq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotCi0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZShleGVjLCBl
eGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwg
QXJyYXlJdGVyYXRlS2V5VmFsdWUsIHRoaXNPYmplY3QpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAy
Mi4yLjMuNQotICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihl
eGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywg
IkV4cGVjdGVkIGF0IGxlYXN0IHR3byBhcmd1bWVudHMiKSk7Ci0KLSAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0KLSAgICBsb25nIGxlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOwotICAgIGxvbmcg
dG8gPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDAsIGxlbmd0aCk7
Ci0gICAgbG9uZyBmcm9tID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVj
LCAxLCBsZW5ndGgpOwotICAgIGxvbmcgZmluYWwgPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21T
dGFydE9yRW5kKGV4ZWMsIDIsIGxlbmd0aCwgbGVuZ3RoKTsKLQotICAgIGlmIChmaW5hbCA8IGZy
b20pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpOwot
Ci0gICAgbG9uZyBjb3VudCA9IHN0ZDo6bWluKGxlbmd0aCAtIHN0ZDo6bWF4KHRvLCBmcm9tKSwg
ZmluYWwgLSBmcm9tKTsKLQotICAgIHR5cGVuYW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUqIGFy
cmF5ID0gdGhpc09iamVjdC0+dHlwZWRWZWN0b3IoKTsKLSAgICBtZW1tb3ZlKGFycmF5ICsgdG8s
IGFycmF5ICsgZnJvbSwgY291bnQgKiB0aGlzT2JqZWN0LT5lbGVtZW50U2l6ZSk7Ci0KLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLX0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b0Z1bmNGaWxsKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAy
Mi4yLjMuOAotICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihl
eGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBKU1ZhbHVlIHZhbHVlVG9JbnNlcnQgPSBleGVjLT5h
cmd1bWVudCgwKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICB1bnNpZ25lZCBsZW5ndGgg
PSB0aGlzT2JqZWN0LT5sZW5ndGgoKTsKLSAgICB1bnNpZ25lZCBiZWdpbiA9IGFyZ3VtZW50Q2xh
bXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhlYywgMSwgbGVuZ3RoKTsKLSAgICB1bnNpZ25lZCBl
bmQgPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDIsIGxlbmd0aCwg
bGVuZ3RoKTsKLQotICAgIGlmIChlbmQgPCBiZWdpbikKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBpZiAoIXRoaXNPYmplY3QtPnNldFJh
bmdlVG9WYWx1ZShleGVjLCBiZWdpbiwgZW5kLCB2YWx1ZVRvSW5zZXJ0KSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3
Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvRnVuY0luZGV4T2YoRXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIuMy4xMwot
ICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlz
VmFsdWUoKSk7Ci0KLSAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkV4cGVjdGVkIGF0
IGxlYXN0IG9uZSBhcmd1bWVudCIpKTsKLQotICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmpl
Y3QtPmxlbmd0aCgpOwotCi0gICAgSlNWYWx1ZSB2YWx1ZVRvRmluZCA9IGV4ZWMtPmFyZ3VtZW50
KDApOwotICAgIHVuc2lnbmVkIGluZGV4ID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRP
ckVuZChleGVjLCAxLCBsZW5ndGgpOwotCi0gICAgYXV0byB0YXJnZXRPcHQgPSBWaWV3Q2xhc3M6
OnRvQWRhcHRvck5hdGl2ZUZyb21WYWx1ZShleGVjLCB2YWx1ZVRvRmluZCk7Ci0gICAgaWYgKCF0
YXJnZXRPcHQpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0KLSAgICB0eXBlbmFtZSBWaWV3Q2xhc3M6OkVsZW1lbnRUeXBlIHRhcmdldCA9IHRhcmdldE9w
dC52YWx1ZSgpOwotICAgIHR5cGVuYW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUqIGFycmF5ID0g
dGhpc09iamVjdC0+dHlwZWRWZWN0b3IoKTsKLQotICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsg
KytpbmRleCkgewotICAgICAgICBpZiAoYXJyYXlbaW5kZXhdID09IHRhcmdldCkKLSAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW5kZXgpKTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7Ci19Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIu
Mi4zLjE0Ci0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4
ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmplY3QtPmxl
bmd0aCgpOwotCi0gICAgSlNWYWx1ZSBzZXBhcmF0b3JWYWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDAp
OwotICAgIEpTU3RyaW5nKiBzZXBhcmF0b3JTdHJpbmc7Ci0gICAgU3RyaW5nVmlldyBzZXBhcmF0
b3I7Ci0KLSAgICBpZiAoc2VwYXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewotICAgICAgICBj
b25zdCBMQ2hhciogY29tbWEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiwiKTsK
LSAgICAgICAgc2VwYXJhdG9yID0geyBjb21tYSwgMSB9OwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IHNlcGFyYXRvclN0cmluZyA9IHNlcGFyYXRvclZhbHVlLnRvU3RyaW5nKGV4ZWMpOwotICAgICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgICAgICBzZXBhcmF0b3IgPSBzZXBhcmF0b3JTdHJp
bmctPnZpZXcoZXhlYyk7Ci0gICAgfQotCi0gICAgSlNTdHJpbmdKb2luZXIgam9pbmVyKCpleGVj
LCBzZXBhcmF0b3IsIGxlbmd0aCk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGpvaW5lci5hcHBlbmQo
KmV4ZWMsIHRoaXNPYmplY3QtPmdldEluZGV4UXVpY2tseShpKSk7Ci0gICAgICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqb2luZXIu
am9pbigqZXhlYykpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMo
RXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIuMy4xNQotICAgIFZpZXdDbGFzcyogdGhp
c09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMt
PmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJdGVyYXRvclN0cnVjdHVyZSgpLCBBcnJh
eUl0ZXJhdGVLZXksIHRoaXNPYmplY3QpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNMYXN0SW5kZXhPZihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjE2
Ci0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRo
aXNWYWx1ZSgpKTsKLQotICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiRXhwZWN0ZWQg
YXQgbGVhc3Qgb25lIGFyZ3VtZW50IikpOwotCi0gICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09i
amVjdC0+bGVuZ3RoKCk7Ci0KLSAgICBKU1ZhbHVlIHZhbHVlVG9GaW5kID0gZXhlYy0+YXJndW1l
bnQoMCk7Ci0KLSAgICBpbnQgaW5kZXggPSBsZW5ndGggLSAxOwotICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPj0gMikgewotICAgICAgICBKU1ZhbHVlIGZyb21WYWx1ZSA9IGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpOwotICAgICAgICBkb3VibGUgZnJvbURvdWJsZSA9IGZyb21WYWx1
ZS50b0ludGVnZXIoZXhlYyk7Ci0gICAgICAgIGlmIChmcm9tRG91YmxlIDwgMCkgewotICAgICAg
ICAgICAgZnJvbURvdWJsZSArPSBsZW5ndGg7Ci0gICAgICAgICAgICBpZiAoZnJvbURvdWJsZSA8
IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtMSkp
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChmcm9tRG91YmxlIDwgbGVuZ3RoKQotICAgICAgICAg
ICAgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZnJvbURvdWJsZSk7Ci0gICAgfQotCi0g
ICAgYXV0byB0YXJnZXRPcHQgPSBWaWV3Q2xhc3M6OnRvQWRhcHRvck5hdGl2ZUZyb21WYWx1ZShl
eGVjLCB2YWx1ZVRvRmluZCk7Ci0gICAgaWYgKCF0YXJnZXRPcHQpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICB0eXBlbmFtZSBWaWV3Q2xhc3M6
OkVsZW1lbnRUeXBlIHRhcmdldCA9IHRhcmdldE9wdC52YWx1ZSgpOwotICAgIHR5cGVuYW1lIFZp
ZXdDbGFzczo6RWxlbWVudFR5cGUqIGFycmF5ID0gdGhpc09iamVjdC0+dHlwZWRWZWN0b3IoKTsK
LQotCi0gICAgZm9yICg7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKLSAgICAgICAgaWYgKGFycmF5
W2luZGV4XSA9PSB0YXJnZXQpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGluZGV4KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigtMSkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xl
bmd0aChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjE3Ci0gICAgVmlld0NsYXNz
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bGVuZ3RoKCkp
KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3Ro
KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMgotICAgIFZpZXdDbGFzcyogdGhp
c09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmJ5dGVMZW5ndGgoKSkp
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQo
RXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIuMy4zCi0gICAgVmlld0NsYXNzKiB0aGlz
T2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+Ynl0ZU9mZnNldCgpKSk7
Ci19Ci0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0
ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMjEKLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotCi0gICAgdHlwZW5hbWUg
Vmlld0NsYXNzOjpFbGVtZW50VHlwZSogYXJyYXkgPSB0aGlzT2JqZWN0LT50eXBlZFZlY3Rvcigp
OwotICAgIHN0ZDo6cmV2ZXJzZShhcnJheSwgYXJyYXkgKyB0aGlzT2JqZWN0LT5sZW5ndGgoKSk7
Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QpOwotfQotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVy
aWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAg
Ly8gMjIuMi4zLjI1Ci0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFz
cyo+KGV4ZWMtPmFyZ3VtZW50KDApKTsKLQotICAgIHRoaXNPYmplY3QtPnNvcnQoKTsKLQotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoRXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIu
My4yNgotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhlYy0+
Y2FsbGVlKCkpOwotCi0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFz
cyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCAiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IikpOwotCi0gICAgdW5zaWduZWQgdGhp
c0xlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOwotCi0gICAgdW5zaWduZWQgYmVnaW4gPSBh
cmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDAsIHRoaXNMZW5ndGgpOwot
ICAgIHVuc2lnbmVkIGVuZCA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhl
YywgMSwgdGhpc0xlbmd0aCwgdGhpc0xlbmd0aCk7Ci0KLSAgICAvLyBDbGFtcCBlbmQgdG8gYmVn
aW4uCi0gICAgZW5kID0gc3RkOjptYXgoYmVnaW4sIGVuZCk7Ci0KLSAgICBBU1NFUlQoZW5kID49
IGJlZ2luKTsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBlbmQgLSBiZWdpbjsKLQotICAgIHR5cGVu
YW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUqIGFycmF5ID0gdGhpc09iamVjdC0+dHlwZWRWZWN0
b3IoKTsKLQotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0KLSAgICBjYWxsZWUtPmdsb2JhbE9i
amVjdCgpLT50eXBlZEFycmF5U3RydWN0dXJlKFZpZXdDbGFzczo6VHlwZWRBcnJheVN0b3JhZ2VU
eXBlKTsKLQotICAgIFZpZXdDbGFzcyogcmVzdWx0ID0gVmlld0NsYXNzOjpjcmVhdGVVbmluaXRp
YWxpemVkKGV4ZWMsIHN0cnVjdHVyZSwgbGVuZ3RoKTsKLQotICAgIC8vIFdlIGNhbiB1c2UgbWVt
Y3B5IHNpbmNlIHdlIGtub3cgdGhpcyBhIG5ldyBidWZmZXIKLSAgICBtZW1jcHkoc3RhdGljX2Nh
c3Q8dm9pZCo+KHJlc3VsdC0+dHlwZWRWZWN0b3IoKSksIHN0YXRpY19jYXN0PHZvaWQqPihhcnJh
eSArIGJlZ2luKSwgbGVuZ3RoICogdGhpc09iamVjdC0+ZWxlbWVudFNpemUpOwotCi0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3
Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvRnVuY1N1YmFycmF5KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMjMK
LSAgICBKU0Z1bmN0aW9uKiBjYWxsZWUgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGV4ZWMtPmNhbGxl
ZSgpKTsKLQotICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihl
eGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkV4
cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudCIpKTsKLQotICAgIC8vIEdldCB0aGUgbGVuZ3Ro
IGhlcmU7IGxhdGVyIGFzc2VydCB0aGF0IHRoZSBsZW5ndGggZGlkbid0IGNoYW5nZS4KLSAgICB1
bnNpZ25lZCB0aGlzTGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7Ci0KLSAgICB1bnNpZ25l
ZCBiZWdpbiA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhlYywgMCwgdGhp
c0xlbmd0aCk7Ci0gICAgdW5zaWduZWQgZW5kID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3Rh
cnRPckVuZChleGVjLCAxLCB0aGlzTGVuZ3RoLCB0aGlzTGVuZ3RoKTsKLQotICAgIC8vIENsYW1w
IGVuZCB0byBiZWdpbi4KLSAgICBlbmQgPSBzdGQ6Om1heChiZWdpbiwgZW5kKTsKLQotICAgIEFT
U0VSVChlbmQgPj0gYmVnaW4pOwotICAgIHVuc2lnbmVkIG9mZnNldCA9IGJlZ2luOwotICAgIHVu
c2lnbmVkIGxlbmd0aCA9IGVuZCAtIGJlZ2luOwotCi0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiBh
cnJheUJ1ZmZlciA9IHRoaXNPYmplY3QtPmJ1ZmZlcigpOwotICAgIFJFTEVBU0VfQVNTRVJUKHRo
aXNMZW5ndGggPT0gdGhpc09iamVjdC0+bGVuZ3RoKCkpOwotCi0gICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPQotICAgIGNhbGxlZS0+Z2xvYmFsT2JqZWN0KCktPnR5cGVkQXJyYXlTdHJ1Y3R1cmUo
Vmlld0NsYXNzOjpUeXBlZEFycmF5U3RvcmFnZVR5cGUpOwotCi0gICAgVmlld0NsYXNzKiByZXN1
bHQgPSBWaWV3Q2xhc3M6OmNyZWF0ZSgKLSAgICAgICAgZXhlYywgc3RydWN0dXJlLCBhcnJheUJ1
ZmZlciwKLSAgICAgICAgdGhpc09iamVjdC0+Ynl0ZU9mZnNldCgpICsgb2Zmc2V0ICogVmlld0Ns
YXNzOjplbGVtZW50U2l6ZSwKLSAgICAgICAgbGVuZ3RoKTsKLQotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1ZhbHVlcyhF
eGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjI5Ci0gICAgVmlld0NsYXNzKiB0aGlz
T2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+
Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIEFycmF5
SXRlcmF0ZVZhbHVlLCB0aGlzT2JqZWN0KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0j
ZW5kaWYgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnNfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaAppbmRleCBkYWI1NWJj
ZDA4MjU0M2ZhZTI4Mzg5NzY0ODZiODI4ZmYwNDdlNTNjLi40NTk5OTdhNDY0YjkxMTk0NzdiMWJl
ODRlMzZjNGUyOTY2YWNlZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZUlubGluZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiwxMCArMjYsMTA0IEBACiAjaWZuZGVmIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlSW5saW5lc19oCiAjZGVmaW5lIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlSW5saW5lc19oCiAKKyNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CitFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1Nl
dChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKCF0aGlzT2Jq
ZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihl
eGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkgdmlldyIpKTsKKyAgICAKKyAg
ICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1
bWVudCIpKTsKICAgICAKKyAgICBKU09iamVjdCogc291cmNlQXJyYXkgPSBqc0R5bmFtaWNDYXN0
PEpTT2JqZWN0Kj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICghc291cmNl
QXJyYXkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9y
KGV4ZWMsICJGaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYW4gb2JqZWN0IikpOworICAgIAorICAg
IHVuc2lnbmVkIG9mZnNldDsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDIpIHsK
KyAgICAgICAgb2Zmc2V0ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9VSW50MzIoZXhl
Yyk7CisgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG9m
ZnNldCA9IDA7CisgICAgCisgICAgdW5zaWduZWQgbGVuZ3RoID0gc291cmNlQXJyYXktPmdldChl
eGVjLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9VSW50MzIoZXhlYyk7Cisg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgIAorICAgIHRoaXNPYmplY3QtPnNldChleGVjLCBzb3Vy
Y2VBcnJheSwgb2Zmc2V0LCBsZW5ndGgpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU3ViYXJy
YXkoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxK
U0Z1bmN0aW9uKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIAorICAgIFZpZXdDbGFzcyogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOworICAg
IGlmICghdGhpc09iamVjdCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXci
KSk7CisgICAgCisgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJFeHBlY3RlZCBhdCBs
ZWFzdCBvbmUgYXJndW1lbnQiKSk7CisgICAgCisgICAgaW50MzJfdCBiZWdpbiA9IGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIAorICAgIGludDMyX3QgZW5kOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPj0g
MikgeworICAgICAgICBlbmQgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4
ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0gZWxzZQorICAgICAgICBl
bmQgPSB0aGlzT2JqZWN0LT5sZW5ndGgoKTsKKyAgICAKKyAgICAvLyBHZXQgdGhlIGxlbmd0aCBo
ZXJlOyBsYXRlciBhc3NlcnQgdGhhdCB0aGUgbGVuZ3RoIGRpZG4ndCBjaGFuZ2UuCisgICAgdW5z
aWduZWQgdGhpc0xlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOworICAgIAorICAgIC8vIEhh
bmRsZSBuZWdhdGl2ZSBpbmRpY2VzOiAteCA9PiBsZW5ndGggLSB4CisgICAgaWYgKGJlZ2luIDwg
MCkKKyAgICAgICAgYmVnaW4gPSBzdGQ6Om1heChzdGF0aWNfY2FzdDxpbnQ+KHRoaXNMZW5ndGgg
KyBiZWdpbiksIDApOworICAgIGlmIChlbmQgPCAwKQorICAgICAgICBlbmQgPSBzdGQ6Om1heChz
dGF0aWNfY2FzdDxpbnQ+KHRoaXNMZW5ndGggKyBlbmQpLCAwKTsKKyAgICAKKyAgICAvLyBDbGFt
cCB0aGUgaW5kaWNlcyB0byB0aGUgYm91bmRzIG9mIHRoZSBhcnJheS4KKyAgICBBU1NFUlQoYmVn
aW4gPj0gMCk7CisgICAgQVNTRVJUKGVuZCA+PSAwKTsKKyAgICBiZWdpbiA9IHN0ZDo6bWluKGJl
Z2luLCBzdGF0aWNfY2FzdDxpbnQzMl90Pih0aGlzTGVuZ3RoKSk7CisgICAgZW5kID0gc3RkOjpt
aW4oZW5kLCBzdGF0aWNfY2FzdDxpbnQzMl90Pih0aGlzTGVuZ3RoKSk7CisgICAgCisgICAgLy8g
Q2xhbXAgZW5kIHRvIGJlZ2luLgorICAgIGVuZCA9IHN0ZDo6bWF4KGJlZ2luLCBlbmQpOworICAg
IAorICAgIEFTU0VSVChlbmQgPj0gYmVnaW4pOworICAgIHVuc2lnbmVkIG9mZnNldCA9IGJlZ2lu
OworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGVuZCAtIGJlZ2luOworICAgIAorICAgIFJlZlB0cjxB
cnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIgPSB0aGlzT2JqZWN0LT5idWZmZXIoKTsKKyAgICBSRUxF
QVNFX0FTU0VSVCh0aGlzTGVuZ3RoID09IHRoaXNPYmplY3QtPmxlbmd0aCgpKTsKKyAgICAKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9CisgICAgICAgIGNhbGxlZS0+Z2xvYmFsT2JqZWN0KCkt
PnR5cGVkQXJyYXlTdHJ1Y3R1cmUoVmlld0NsYXNzOjpUeXBlZEFycmF5U3RvcmFnZVR5cGUpOwor
ICAgIAorICAgIFZpZXdDbGFzcyogcmVzdWx0ID0gVmlld0NsYXNzOjpjcmVhdGUoCisgICAgICAg
IGV4ZWMsIHN0cnVjdHVyZSwgYXJyYXlCdWZmZXIsCisgICAgICAgIHRoaXNPYmplY3QtPmJ5dGVP
ZmZzZXQoKSArIG9mZnNldCAqIFZpZXdDbGFzczo6ZWxlbWVudFNpemUsCisgICAgICAgIGxlbmd0
aCk7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZTxWaWV3Q2xhc3M+OjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpAQCAtMzgsMTQg
KzEzMiwxNSBAQCBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTxWaWV3Q2xhc3M+OjpK
U0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZShWTQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
aWV3Q2xhc3M+CiB2b2lkIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlPFZpZXdDbGFz
cz46OmZpbmlzaENyZWF0aW9uKAotICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQorICAgIFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgCiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCisgICAg
CisgICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zZXQsIGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldDxWaWV3Q2xhc3M+LCBEb250RW51bSwgMik7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5zdWJhcnJheSwgZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jU3ViYXJyYXk8Vmlld0NsYXNzPiwgRG9udEVudW0sIDIpOwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+QllURVNfUEVSX0VMRU1FTlQsIGpz
TnVtYmVyKFZpZXdDbGFzczo6ZWxlbWVudFNpemUpLCBEb250RW51bSB8IFJlYWRPbmx5IHwgRG9u
dERlbGV0ZSk7Ci0KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDI0YmZj
YjlkY2VlYmE4MTdmNWRhZmY5MjExODUwOGRmYmZhMjc2YTAuLjkzZWUxZmQ3NGI5OTI1OTA0MWNh
MWU4NjJmNjMxMWY2NTA5ODM4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTk2LDcgKzk2LDYgQEAKICNpbmNsdWRlICJKU1Rl
bXBsYXRlUmVnaXN0cnlLZXkuaCIKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMu
aCIKICNpbmNsdWRlICJKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmgiCi0jaW5jbHVkZSAiSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKICNpbmNs
dWRlICJKU1dBU01Nb2R1bGUuaCIKICNpbmNsdWRlICJKU1dlYWtNYXAuaCIKQEAgLTI4NywxOCAr
Mjg2LDE2IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIHByb3RvQWNj
ZXNzb3ItPnNldFNldHRlcih2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAw
LCBTdHJpbmcoKSwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKSk7CiAgICAgbV9vYmplY3RQcm90b3R5
cGUtPnB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuZGVy
c2NvcmVQcm90bywgcHJvdG9BY2Nlc3NvciwgQWNjZXNzb3IgfCBEb250RW51bSk7CiAgICAgbV9m
dW5jdGlvblByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldFByb3RvdHlwZVdpdGhvdXRUcmFuc2l0
aW9uKHZtLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSk7Ci0KLSAgICBKU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlKiB0eXBlZEFycmF5UHJvdG8gPSBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKLQotICAgIG1fdHlwZWRBcnJh
eXNbdG9JbmRleChUeXBlSW50OCldLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTSW50OEFycmF5
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTSW50OEFycmF5UHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIHR5cGVkQXJyYXlQcm90bykpKTsKLSAgICBtX3R5cGVkQXJyYXlz
W3RvSW5kZXgoVHlwZUludDE2KV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNJbnQxNkFycmF5
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTSW50MTZBcnJheVByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKHZtLCB0aGlzLCB0eXBlZEFycmF5UHJvdG8pKSk7Ci0gICAgbV90eXBlZEFycmF5
c1t0b0luZGV4KFR5cGVJbnQzMildLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTSW50MzJBcnJh
eVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0ludDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgdGhpcywgdHlwZWRBcnJheVByb3RvKSkpOwotICAgIG1fdHlwZWRBcnJh
eXNbdG9JbmRleChUeXBlVWludDgpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU1VpbnQ4QXJy
YXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNVaW50OEFycmF5UHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHR5cGVkQXJyYXlQcm90bykpKTsKLSAgICBtX3R5cGVkQXJy
YXlzW3RvSW5kZXgoVHlwZVVpbnQ4Q2xhbXBlZCldLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpT
VWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNVaW50OENsYW1w
ZWRBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCB0eXBlZEFycmF5UHJv
dG8pKSk7Ci0gICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVVaW50MTYpXS5wcm90b3R5cGUu
c2V0KHZtLCB0aGlzLCBKU1VpbnQxNkFycmF5UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpT
VWludDE2QXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgdHlwZWRBcnJh
eVByb3RvKSkpOwotICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlVWludDMyKV0ucHJvdG90
eXBlLnNldCh2bSwgdGhpcywgSlNVaW50MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlz
LCBKU1VpbnQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHR5cGVk
QXJyYXlQcm90bykpKTsKLSAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUZsb2F0MzIpXS5w
cm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0Zsb2F0MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZt
LCB0aGlzLCBKU0Zsb2F0MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlz
LCB0eXBlZEFycmF5UHJvdG8pKSk7Ci0gICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVGbG9h
dDY0KV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6OmNy
ZWF0ZSh2bSwgdGhpcywgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgdHlwZWRBcnJheVByb3RvKSkpOworICAgIAorICAgIG1fdHlwZWRBcnJheXNbdG9J
bmRleChUeXBlSW50OCldLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTSW50OEFycmF5UHJvdG90
eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTSW50OEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fdHlwZWRBcnJh
eXNbdG9JbmRleChUeXBlSW50MTYpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0ludDE2QXJy
YXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNJbnQxNkFycmF5UHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1f
dHlwZWRBcnJheXNbdG9JbmRleChUeXBlSW50MzIpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBK
U0ludDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNJbnQzMkFycmF5UHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkp
OworICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlVWludDgpXS5wcm90b3R5cGUuc2V0KHZt
LCB0aGlzLCBKU1VpbnQ4QXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNVaW50OEFy
cmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBl
LmdldCgpKSkpOworICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlVWludDhDbGFtcGVkKV0u
cHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZTo6Y3Jl
YXRlKHZtLCB0aGlzLCBKU1VpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fdHlwZWRBcnJh
eXNbdG9JbmRleChUeXBlVWludDE2KV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNVaW50MTZB
cnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU1VpbnQxNkFycmF5UHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAg
IG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlVWludDMyKV0ucHJvdG90eXBlLnNldCh2bSwgdGhp
cywgSlNVaW50MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU1VpbnQzMkFycmF5
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSkpOworICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlRmxvYXQzMildLnByb3RvdHlw
ZS5zZXQodm0sIHRoaXMsIEpTRmxvYXQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMs
IEpTRmxvYXQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlRmxv
YXQ2NCldLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fdHlwZWRBcnJheXNb
dG9JbmRleChUeXBlRGF0YVZpZXcpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0RhdGFWaWV3
UHJvdG90eXBlOjpjcmVhdGUodm0sIEpTRGF0YVZpZXdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgCiAgICAgbV90eXBl
ZEFycmF5c1t0b0luZGV4KFR5cGVJbnQ4KV0uc3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNJbnQ4
QXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5
cGVJbnQ4KV0ucHJvdG90eXBlLmdldCgpKSk7CkBAIC00ODAsOCArNDc3LDYgQEAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFt
ZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2Jq
ZWN0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgZ2V0VGVtcGxh
dGVPYmplY3QpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVG9MZW5ndGggPSBKU0Z1bmN0
aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvTGVuZ3RoQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVG9JbnRlZ2Vy
ID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RUb0lu
dGVnZXJDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7Ci0gICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1
bmNUeXBlZEFycmF5TGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCk7Ci0gICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKIAogICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKQEAgLTQ5Myw4ICs0ODgsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVj
dAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+Z2V0VGVtcGxh
dGVPYmplY3RQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+ZW5xdWV1ZUpvYlByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1ZXVlSm9iKSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFy
cmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0aW5Mb2csIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBudW1iZXJDb25zdHJ1Y3Rvciwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjJlYTVlZjlkYzliN2NiZmVhMmFmMTM4NmExNWQyODcy
YzJmYzc1ZC4uYjlkNDc4ZWE2ZDkwMmE3MDhjNzczNTc4NWUwOGZjZDI1NjRlYmE3YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNDgyLDE2ICsxNDgyLDYg
QEAgQUxXQVlTX0lOTElORSBJZGVudGlmaWVyIG1ha2VJZGVudGlmaWVyKFZNJiwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSkKICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24oXAogICAgICAgICB2
bSwgZ2xvYmFsT2JqZWN0LCBtYWtlSWRlbnRpZmllcih2bSwgKGpzTmFtZSkpLCAoZ2VuZXJhdG9y
TmFtZSkodm0pLCAoYXR0cmlidXRlcykpCiAKLS8vIEhlbHBlciBmb3IgZGVmaW5pbmcgbmF0aXZl
IGdldHRlcnMgb24gcHJvcGVydGllcy4KLSNkZWZpbmUgSlNDX05BVElWRV9HRVRURVIoanNOYW1l
LCBjcHBOYW1lLCBhdHRyaWJ1dGVzLCBsZW5ndGgpIGRvIHsgXAotICAgICAgICBJZGVudGlmaWVy
IGlkZW50ID0gbWFrZUlkZW50aWZpZXIodm0sIChqc05hbWUpKTsgXAotICAgICAgICBHZXR0ZXJT
ZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCk7
IFwKLSAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgKGxlbmd0aCksIGlkZW50LnN0cmluZygpLCAoY3BwTmFtZSkpOyBcCi0g
ICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGdsb2JhbE9iamVjdCwgZnVuY3Rpb24pOyBc
Ci0gICAgICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIGlkZW50LCBhY2Nlc3Nvciwg
KGF0dHJpYnV0ZXMpIHwgQWNjZXNzb3IpOyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU09iamVjdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlQcm90b3R5cGVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlwZXMuY3BwCmlu
ZGV4IGQ5MjgyZWFkMzhkYzJlMDcxNjRlYmYzMjExODVkZjUxZTIwOGUxNGYuLmMwMWQ4Zjg4OTE4
Yjk4YjdlYjQ3M2Q3Y2YwMGQwMzJmYmI3NWUzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlwZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlwZXMuY3BwCkBAIC0zMSw5
ICszMSw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jb25zdCBDbGFzc0luZm8gSlNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZTo6c19pbmZvID0geyJQcm90b3R5cGUiLCAmSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZTo6QmFzZTo6c19pbmZvLCAwLAotICAgIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZSl9OwotCiAjZGVmaW5lIE1BS0VfU19JTkZPKHR5cGUpIFwK
ICAgICB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKUyMjdHlwZSMjUHJvdG90eXBlOjpzX2lu
Zm8gPSB7I3R5cGUgIlByb3RvdHlwZSIsICZKUyMjdHlwZSMjUHJvdG90eXBlOjpCYXNlOjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlMjI3R5cGUjI1Byb3RvdHlwZSl9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlw
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlw
ZXMuaAppbmRleCA4ZWRlODYwZTU1NDAwZTJiMjM4MWE2ZjA3NjE5ZDI3NGYwMDNmOGJmLi5iMGYx
YzExNDczN2Q3MDM4MWY1NTIyNWNkYmRkYjZkZGY5ZmQzNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlQcm90b3R5cGVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5UHJvdG90eXBlcy5oCkBAIC0y
Nyw3ICsyNyw2IEBACiAjZGVmaW5lIEpTVHlwZWRBcnJheVByb3RvdHlwZXNfaAogCiAjaW5jbHVk
ZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCIKLSNpbmNsdWRlICJKU1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5cy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGNiYmY0MjNhYThmMmY3M2M0OTAwOWE3MmE0NjhjOTNlNWVlMjA2MDIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmgiCi0KLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKLSNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGVGdW5jdGlvbnMuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCi0jaW5jbHVkZSAi
VHlwZWRBcnJheUFkYXB0b3JzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi0jZGVmaW5lIENBTExf
R0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihmdW5jdGlvbk5hbWUpIGRvIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3dpdGNoICh0aGlzVmFsdWUuZ2V0T2Jq
ZWN0KCktPmNsYXNzSW5mbygpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpIHsgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZVVpbnQ4Q2xhbXBlZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTVWludDhDbGFtcGVkQXJyYXk+KGV4ZWMp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlw
ZUludDMyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1l
PEpTSW50MzJBcnJheT4oZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZVVpbnQzMjogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTVWludDMyQXJyYXk+KGV4ZWMpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZUZs
b2F0NjQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpT
RmxvYXQ2NEFycmF5PihleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTRmxvYXQzMkFycmF5PihleGVjKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZUludDg6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTSW50
OEFycmF5PihleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgIGNhc2UgVHlwZVVpbnQ4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTVWludDhBcnJheT4oZXhlYyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZUludDE2OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25OYW1lPEpTSW50MTZB
cnJheT4oZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIGNhc2UgVHlwZVVpbnQxNjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBy
ZXR1cm4gZnVuY3Rpb25OYW1lPEpTVWludDE2QXJyYXk+KGV4ZWMpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgTm90VHlwZWRBcnJheTog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIGNhc2UgVHlwZURhdGFWaWV3OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
IlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXciKSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi19IHdo
aWxlIChmYWxzZSkKLQotRW5jb2RlZEpTVmFsdWUgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xl
bmd0aChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRoaXNPYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oZXhlYy0+YXJndW1lbnQoMCkp
OwotICAgIGlmICghdGhpc09iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5
IHZpZXciKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmpl
Y3QtPmxlbmd0aCgpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHR5cGVkQXJyYXlWaWV3UHJpdmF0
ZUZ1bmNTb3J0KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZl
ciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9iamVjdCIpKTsK
LSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQoRXhlY1N0YXRlKiBleGVj
KQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5
IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFS
UkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQp
OwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmll
d1Byb3RvRnVuY0VudHJpZXMoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywg
IlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2Jq
ZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNFbnRyaWVzKTsKLX0KLQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGlu
KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQg
YmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxM
X0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9GdW5jQ29weVdpdGhpbik7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbChFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRo
aXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNy
ZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkgdmll
dyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlf
UFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0ZpbGwpOwot
fQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvRnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMs
ICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9i
amVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04o
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOwotfQotCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4
T2YoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3Vs
ZCBiZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENB
TExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmRleE9mKTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKEV4ZWNTdGF0ZSogZXhlYykKLXsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3
IGJ1dCB3YXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9Q
Uk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7Ci19
Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jS2V5cyhFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2
ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkgdmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7
Ci0gICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aChFeGVjU3Rh
dGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlw
ZWQgYXJyYXkgdmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklD
X1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
R2V0dGVyRnVuY0xlbmd0aCk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChFeGVjU3RhdGUqIGV4
ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBp
ZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4
ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJy
YXkgdmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklDX1RZUEVE
QVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVy
RnVuY0J5dGVMZW5ndGgpOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoRXhlY1N0YXRlKiBleGVj
KQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5
IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFS
UkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1
bmNCeXRlT2Zmc2V0KTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVl
LmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3
YXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk7Ci19Ci0K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jU3ViYXJyYXkoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2Vp
dmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0Iikp
OwotICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTdWJhcnJheSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoRXhlY1N0YXRl
KiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVk
IGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19U
WVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNTbGljZSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2Jq
ZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9y
KGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90
IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVO
Q1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOwotfQotCi0jdW5kZWYgQ0FMTF9H
RU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OCi0KLUpTVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGU6OkpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBKU1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotCi0gICAg
QVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0gICAgSlNDX05BVElWRV9HRVRURVIodm0ucHJv
cGVydHlOYW1lcy0+Ynl0ZUxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRl
TGVuZ3RoLCBEb250RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgMCk7Ci0gICAgSlNDX05B
VElWRV9HRVRURVIodm0ucHJvcGVydHlOYW1lcy0+Ynl0ZU9mZnNldCwgdHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0LCBEb250RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0
ZSwgMCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTigiY29weVdpdGhpbiIsIHR5cGVkQXJyYXlW
aWV3UHJvdG9GdW5jQ29weVdpdGhpbiwgRG9udEVudW0sIDIpOwotICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OKCJldmVyeSIsIHR5cGVkQXJyYXlQcm90b3R5cGVFdmVyeUNvZGVHZW5lcmF0b3IsIERv
bnRFbnVtKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTigiZmlsdGVyIiwgdHlwZWRBcnJheVBy
b3RvdHlwZUZpbHRlckNvZGVHZW5lcmF0b3IsIERvbnRFbnVtKTsKLSAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTigic29ydCIsIHR5cGVkQXJyYXlQcm90b3R5cGVTb3J0Q29kZUdlbmVyYXRvciwgRG9u
dEVudW0pOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+ZW50cmll
cywgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNFbnRyaWVzLCBEb250RW51bSwgMCk7Ci0gICAgSlND
X05BVElWRV9GVU5DVElPTigiZmlsbCIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgRG9u
dEVudW0sIDEpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OKCJmaW5kIiwgdHlwZWRBcnJheVBy
b3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVO
Q1RJT04oImZpbmRJbmRleCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJh
dG9yLCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1l
cy0+Zm9yRWFjaCwgdHlwZWRBcnJheVByb3RvdHlwZUZvckVhY2hDb2RlR2VuZXJhdG9yLCBEb250
RW51bSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTigiaW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSW5kZXhPZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04o
dm0ucHJvcGVydHlOYW1lcy0+am9pbiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCBEb250
RW51bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5rZXlz
LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMsIERvbnRFbnVtLCAwKTsKLSAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OKCJsYXN0SW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdElu
ZGV4T2YsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUih2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgsIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoLCBEb250RW51
bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgMCk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04o
Im1hcCIsIHR5cGVkQXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0g
ICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04oInJlZHVjZSIsIHR5cGVkQXJyYXlQcm90b3R5cGVSZWR1
Y2VDb2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04oInJl
ZHVjZVJpZ2h0IiwgdHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZVJpZ2h0Q29kZUdlbmVyYXRvciwg
RG9udEVudW0pOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04oInJldmVyc2UiLCB0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY1JldmVyc2UsIERvbnRFbnVtLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPnNldCwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQsIERv
bnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnNs
aWNlLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlLCBEb250RW51bSwgMik7Ci0gICAgSlND
X0JVSUxUSU5fRlVOQ1RJT04oInNvbWUiLCB0eXBlZEFycmF5UHJvdG90eXBlU29tZUNvZGVHZW5l
cmF0b3IsIERvbnRFbnVtKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPnN1YmFycmF5LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1N1YmFycmF5LCBEb250RW51bSwg
Mik7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+dG9Mb2NhbGVT
dHJpbmcsIHR5cGVkQXJyYXlQcm90b3R5cGVUb0xvY2FsZVN0cmluZ0NvZGVHZW5lcmF0b3IsIERv
bnRFbnVtKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvU3Ry
aW5nLCBhcnJheVByb3RvRnVuY1RvU3RyaW5nLCBEb250RW51bSwgMCk7Ci0KLSAgICBKU0Z1bmN0
aW9uKiB2YWx1ZXNGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZXMuc3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jVmFsdWVzKTsKLQotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT52YWx1ZXMsIHZhbHVlc0Z1bmN0aW9uKTsKLSAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIHZhbHVl
c0Z1bmN0aW9uKTsKLQotfQotCi1KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlKiBKU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlOjpjcmVhdGUoCi0gICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLXsKLSAgICBKU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlKiBwcm90b3R5cGUgPQotICAgIG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGU+KHZtLmhlYXApKQotICAgIEpTVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGUodm0sIHN0cnVjdHVyZSk7Ci0gICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2
bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gcHJvdG90eXBlOwotfQotCi1TdHJ1Y3R1cmUq
IEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSgKLSAgICBWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQotewotICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGFkOWRmNjAxY2E5M2MzYzk5ZjdlZTM1NWFmY2I2MTY4YTJhNTUwMzguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZV9oCi0jZGVmaW5lIEpTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGVfaAotCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpT
QyB7Ci0KLWNsYXNzIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0K
LXByb3RlY3RlZDoKLSAgICBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlKFZNJiwgU3RydWN0dXJl
Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7Ci0KLXB1
YmxpYzoKLSAgICBzdGF0aWMgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZSogY3JlYXRlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLQotICAgIERFQ0xBUkVfSU5GTzsKLQotICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
SlNWYWx1ZSBwcm90b3R5cGUpOwotfTsKLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChFeGVjU3RhdGUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aChFeGVjU3RhdGUq
KTsKLQotICAgIAotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvKiBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlX2ggKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MTg4MmQxODBlOGNiZDE1ODBmYTUxMDUzNzM4Njc3
ZjA4YjhjYzFhLi44NDcyYTM1ZDVjNGM3Nzg0M2FhMjAyM2M3YmY5NDhkNDFjNzNiZjExIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDgtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODkwNjQg
YW5kIHIxODkwODQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDg1NjAKKworICAgICAgICBCcmVha3MgMTE3IEpTQyB0ZXN0cy4gKFJlcXVlc3RlZCBi
eSBtbGFtIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAg
ICAgICAgIltFUzZdIEFkZCBUeXBlZEFycmF5LnByb3RvdHlwZSBmdW5jdGlvbmFsaXR5LiIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODAzNQorICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODkwNjQKKworICAgICAgICAi
VW5icmVhayBKU0MgdGVzdHMgKGJyb2tlbiBzaW5jZSByMTg5MDY0KS4iCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4OTA4NAorCiAyMDE1LTA4LTI3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmJyZWFrIEpTQyB0ZXN0cyAoYnJv
a2VuIHNpbmNlIHIxODkwNjQpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvdHlwZS1jb252ZXJzaW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvdHlwZS1jb252ZXJzaW9uLXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IGU4
YmZhYjcwZjFlZjA2NWNmNDNkYjllODVhZTIxNzc3MDA1YjJkY2EuLmJjNzU5MjY5YjkxNTc5Mjk5
ZDIxZTkwZGI2ZmU3ZDUxMDhiZDQ2NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90eXBlLWNvbnZlcnNpb24tdGVzdC1leHBlY3RlZC50eHQK
QEAgLTc2NSw3ICs3NjUsNyBAQCBQQVNTIGNvbnRleHQudW5pZm9ybTRmKGxvYywgMCwgYXJndW1l
bnQsIDAsIDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC51bmlmb3JtNGYobG9jLCAwLCAw
LCBhcmd1bWVudCwgMCkgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LnVuaWZvcm00Zihsb2Ms
IDAsIDAsIDAsIGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCiAKLXRlc3RpbmcgdHlwZSBvZiBUeXBl
ZEFycmF5IDogdmFsdWUgPSAwCit0ZXN0aW5nIHR5cGUgb2YgVHlwZWRBcnJheSA6IHZhbHVlID0g
W29iamVjdCBGbG9hdDMyQXJyYXldCiBQQVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKHBy
b2dyYW0sIGFyZ3VtZW50LCAnZm9vJykgaXMgdW5kZWZpbmVkLgogUEFTUyBjb250ZXh0LmJsZW5k
Q29sb3IoYXJndW1lbnQsIGFyZ3VtZW50LCBhcmd1bWVudCwgYXJndW1lbnQpIGlzIHVuZGVmaW5l
ZC4KIFBBU1MgY29udGV4dC5idWZmZXJEYXRhKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1bWVu
dCwgY29udGV4dC5TVEFUSUNfRFJBVykgaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWV4cGVjdGVkLnR4dAppbmRleCAwY2U5YzNkYjY2Y2I2Nzc0ZjAzODUyZmE3ZDIxNTk3MTNlOGMx
MWFjLi5hYWE5NmJlOTcwZDBiM2M0OTQ5YjA0NTg5ZDg5ZmMxNWI0ZTJhNjA0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtNDYsOSArNDYsOSBAQCBMT0c6IFtvYmplY3Qg
T2JqZWN0XSA9PiBlbnRyeQogTE9HOiBbb2JqZWN0IFNldF0gPT4gdHJ1ZQogTE9HOiBbb2JqZWN0
IE1hcF0gPT4gW29iamVjdCBPYmplY3RdCiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFn
ZURhdGFdIG9mIHR5cGUgb2JqZWN0Ci1QQVNTOiBldmVudERhdGEgaXMgMCwxLDIsMyw0LDUsNiw3
LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwy
NywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0
Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2
NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4
NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEw
MiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2
LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAs
MTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwx
NDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1
OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTcz
LDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcs
MTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwy
MDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIx
NiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMw
LDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQs
MjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwwLDEsMiwzLDQsNSw2
LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2
LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1
LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0
LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgz
LDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEs
MTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwx
MTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgsMTI5LDEz
MCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMgb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5
XSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBv
ZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIDAsMSwyLDMsNCw1LDYsNyw4LDksMTAs
MTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjks
MzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgs
NDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcs
NjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYs
ODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEw
NCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4
LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIs
MTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0Niwx
NDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2
MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1
LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODks
MTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywy
MDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIx
OCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMy
LDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYs
MjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMCwxLDIsMyw0LDUsNiw3LDgsOSwx
MCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwy
OSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0
OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2
Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4
Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMs
MTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywx
MTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEz
MiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzIG9mIHR5cGUgb2Jq
ZWN0CitQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0gb2YgdHlw
ZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgogUEFTUzogZXZl
bnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCiBQQVNTOiBldmFsVGh1bmsgT0sKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzNiOTFiNGJlODgwNjlmMDc0ZTljYzAwYjcy
ZGM2N2VlYzA0YjUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4g
ZnVuY3Rpb24iKTsKLQotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuY29weVdpdGhp
bi5sZW5ndGgiLCAiMiIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRo
aW4ubmFtZSIsICInY29weVdpdGhpbiciKTsKLQotc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlv
bkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdjb3B5V2l0aGluJykiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2NvcHlXaXRoaW4nLCBbdW5kZWZpbmVkLCB0
aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotCi1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5
cGVGdW5jdGlvbignY29weVdpdGhpbicsICcoMCwgMyknLCBbMSwgMiwgMywgNCwgNV0sIFs0LCA1
LCAzLCA0LCA1XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdjb3B5
V2l0aGluJywgJygwLCAzLCA0KScsIFsxLCAyLCAzLCA0LCA1XSwgWzQsIDIsIDMsIDQsIDVdKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2NvcHlXaXRoaW4nLCAnKDAs
IC0yLCAtMSknLCBbMSwgMiwgMywgNCwgNV0sIFs0LCAyLCAzLCA0LCA1XSkiKTsKLXNob3VsZEJl
VHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdjb3B5V2l0aGluJywgJyg1LCAtNSwgNSknLCBb
MSwgMiwgMywgNCwgNV0sIFsxLCAyLCAzLCA0LCA1XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdjb3B5V2l0aGluJywgJygxLCAtNSwgNSknLCBbMSwgMiwgMywgNCwg
NV0sIFsxLCAxLCAyLCAzLCA0XSkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy90eXBlZGFycmF5LWV2ZXJ5LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L3R5cGVkYXJyYXktZXZlcnkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NDk5
YjFjZTM0YmM5ZmY5Y2UwZDhhZTQ1ZDE2MjZmM2FkYzI2MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5
cGVkYXJyYXktZXZlcnkuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1kZXNjcmlw
dGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5w
cm90b3R5cGUuZXZlcnkgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90
b3R5cGUuZXZlcnkubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlw
ZS5ldmVyeS5uYW1lIiwgIidldmVyeSciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25G
b3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnZXZlcnknKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZXZlcnknLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsg
XSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0
aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQg
WyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEuMCBTaW5nbGUg
QXJndW1lbnQgVGVzdGluZyIpOwotZnVuY3Rpb24gaXNCaWdFbm91Z2goZWxlbWVudCwgaW5kZXgs
IGFycmF5KSB7Ci0gICAgaWYgKHRoaXMudmFsdWUpCi0gICAgICAgIHJldHVybiBlbGVtZW50ID49
IHRoaXMudmFsdWU7Ci0gICAgcmV0dXJuIGVsZW1lbnQgPj0gMTA7Ci19Ci1zaG91bGRCZVRydWUo
InRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5vdWdoKScsIFsxMiwgNSwg
OCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignZXZlcnknLCAnKGlzQmlnRW5vdWdoKScsIFsxMiwgNTQsIDE4LCAxMywgNDRdLCB0cnVlKSIp
OwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Ci12YXIg
dGhpc1ZhbHVlID0geyB2YWx1ZTogMTEgfTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdldmVyeScsICcoaXNCaWdFbm91Z2gsIHRoaXNWYWx1ZSknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
ZXZlcnknLCAnKGlzQmlnRW5vdWdoLCB0aGlzVmFsdWUpJywgWzEyLCA1NCwgODIsIDEzLCA0NF0s
IHRydWUpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQXJyYXkgRWxlbWVudCBDaGFuZ2lu
ZyIpOwotZnVuY3Rpb24gaXNCaWdFbm91Z2hBbmRDaGFuZ2UoZWxlbWVudCwgaW5kZXgsIGFycmF5
KSB7Ci0gICAgYXJyYXlbYXJyYXkubGVuZ3RoIC0gMSAtIGluZGV4XSA9IDU7Ci0gICAgcmV0dXJu
IChlbGVtZW50ID49IDEwKTsKLX0KLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdldmVyeScsICcoaXNCaWdFbm91Z2hBbmRDaGFuZ2UpJywgWzEyLCAxNSwgMSwgMTMsIDQ0XSwg
ZmFsc2UsIFsxMiwgMTUsIDUsIDUsIDVdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2V2ZXJ5JywgJyhpc0JpZ0Vub3VnaEFuZENoYW5nZSknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UsIFsxMiwgNSwgNSwgNSwgNV0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVn
KCI0LjAgRXhjZXB0aW9uIFRlc3QiKTsKLWZ1bmN0aW9uIGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9u
KGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlmKGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0
aW9uIGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91
bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoaXNCaWdFbm91Z2hBbmRF
eGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotZGVidWcoIiIpOwot
Ci1kZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKLXNob3VsZFRocm93
KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2V2ZXJ5JywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywg
NDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2V2ZXJ5
JywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxk
VGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKG5ldyBPYmplY3QoKSknLCBb
MTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdldmVyeScsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2Up
Iik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoKScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktZmlsbC5qcyBiL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZpbGwuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxOTBhZTVhYzMxY2U5ZWM1ZWIzYTVjNzg1NGVhOWQ4NWMxODRkMTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktZmlsbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMz
ICswLDAgQEAKLWRlc2NyaXB0aW9uKAotIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9m
IHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWxsIGZ1bmN0aW9uIgotKTsKLQotc2hvdWxkQmUo
IkludDMyQXJyYXkucHJvdG90eXBlLmZpbGwubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQz
MkFycmF5LnByb3RvdHlwZS5maWxsLm5hbWUiLCAiJ2ZpbGwnIik7Ci1zaG91bGRCZVRydWUoImlz
U2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbGwnKSIpOwotc2hvdWxk
QmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmlsbCcsIFt1bmRlZmluZWQsIHRo
aXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3MsIGlu
aXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1Zygi
MS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZmlsbCcsICcoMTIpJywgWzE1LCA1LCA4LCAxMywgNDRdLCBbMTIsMTIsMTIs
MTIsMTJdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAn
KHRydWUpJywgWzEyLCA1NCwgMTgsIDEzLCA0NF0sIFsxLDEsMSwxLDFdKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Ci1zaG91bGRCZVRydWUoInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoMTIsIDIpJywgWzE0LCAxNSwgMTAsIDEzLCA0
NF0sIFsxNCwgMTUsIDEyLCAxMiwgMTJdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbGwnLCAnKDQsIE5hTiknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSwgWzQsIDQs
IDQsIDQsIDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwn
LCAnKDQsIC01KScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbNCwgNCwgNCwgNCwgNF0pIik7Ci1z
aG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoNCwgLTEpJywgWzE0
LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEwLCAxMywgNF0pIik7Ci1kZWJ1ZygiIik7Ci0K
LWRlYnVnKCIzLjAgVGhyZWUgQXJndW1lbnQgVGVzdGluZyIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAnKDQsIC0xLCAwKScsIFsxNCwgMTUsIDEwLCAxMywg
NDRdLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAxLCAxKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQs
IDE1LCAxMCwgMTMsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdmaWxsJywgJyg0LCAxLCBOYU4pJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEw
LCAxMywgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwn
LCAnKDQsIE5hTiwgTmFOKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQsIDE1LCAxMCwgMTMs
IDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0
LCBOYU4sIDUpJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFs0LCA0LCA0LCA0LCA0XSkiKTsKLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAtMywgLTIpJywg
WzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDQsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoNCwgNSwgNSknLCBbMTQsIDE1LCAx
MCwgMTMsIDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1maWx0ZXIuanMgYi9MYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1maWx0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYzNWI4YmVjZmU2OTYxMDVlNWJlYzBjOTU4OTZlMTk3MWEzYTg4ZjUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktZmlsdGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2Yg
dGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbHRlciBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJl
KCJJbnQzMkFycmF5LnByb3RvdHlwZS5maWx0ZXIubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJ
bnQzMkFycmF5LnByb3RvdHlwZS5maWx0ZXIubmFtZSIsICInZmlsdGVyJyIpOwotc2hvdWxkQmVU
cnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdmaWx0ZXInKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmlsdGVyJywgW3Vu
ZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVi
dWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFt
ZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7Ci1kZWJ1ZygiIik7
Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKLWZ1bmN0aW9uIGtlZXBF
dmVuKGUsIGkpIHsKLSAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRoaXMua2Vl
cC5pbmRleE9mKGkpID49IDAgOiBmYWxzZSk7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZmlsdGVyJywgJyhrZWVwRXZlbiknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFsx
MiwgOCwgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRl
cicsICcoa2VlcEV2ZW4pJywgWzExLCA1NCwgMTgsIDEzLCAxXSwgWzU0LCAxOF0pIik7Ci1kZWJ1
ZygiIik7Ci0KLWRlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKLXZhciB0aGlzVmFs
dWUgPSB7IGtlZXA6IFsxLCAzXSB9Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbHRlcicsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTIsIDIzLCAxMSwgMSwgNDVd
LCBbMTIsIDIzLCAxXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjMuMCBBcnJheSBFbGVtZW50
IENoYW5naW5nIik7Ci1mdW5jdGlvbiBrZWVwRXZlbkFuZENoYW5nZShlLCBpLCBhKSB7Ci0gICAg
YVthLmxlbmd0aCAtIDEgLSBpXSA9IDU7Ci0gICAgcmV0dXJuICEoZSAmIDEpOwotfQotc2hvdWxk
QmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICcoa2VlcEV2ZW5BbmRDaGFu
Z2UpJywgWzEyLCAxNSwgMiwgMTMsIDQ0XSwgWzEyLCAyXSwgWzUsIDUsIDUsIDUsIDVdKSIpOwot
ZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0Iik7Ci1mdW5jdGlvbiBpc0Jp
Z0Vub3VnaEFuZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKLSAgICBpZihpbmRl
eD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAgICByZXR1cm4gKGVsZW1l
bnQgPj0gMTApOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsdGVy
JywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFs
c2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sg
VGVzdCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsdGVyJywgJyg4
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICcoXCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEwLCAxMywg
NDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRl
cicsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNo
b3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICcobnVsbCknLCBbMTIs
IDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaWx0ZXInLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1k
ZWJ1ZygiIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRh
cnJheS1maW5kLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktZmlu
ZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA2ODkxMmRlNDM0YjVkOGE3YmFj
YWUzY2RhMGM2OTM1N2NkNjAyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1maW5kLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmQgZnVu
Y3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZmluZC5sZW5ndGgi
LCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmQubmFtZSIsICInZmlu
ZCciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3Rv
dHlwZSgnZmluZCcpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5
KCdmaW5kJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVn
KCIiKTsKLQotZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBh
cmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7
Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKLWZ1
bmN0aW9uIGtlZXBFdmVuKGUsIGkpIHsKLSAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2Vl
cCA/IHRoaXMua2VlcCA9PT0gaSA6IGZhbHNlKTsKLX0KLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhrZWVwRXZlbiknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIDEy
KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKGtlZXBF
dmVuKScsIFsxMSwgMTMsIDE3LCAxMywgMjJdLCAyMikiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhrZWVwRXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDEx
XSwgdW5kZWZpbmVkKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBU
ZXN0aW5nIik7Ci12YXIgdGhpc1ZhbHVlID0geyBrZWVwOiAzIH07Ci1zaG91bGRCZVRydWUoInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEs
IDIzLCAxMSwgMSwgNDRdLCAxKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEFycmF5IEVs
ZW1lbnQgQ2hhbmdpbmciKTsKLWZ1bmN0aW9uIGtlZXBFdmVuQW5kQ2hhbmdlKGUsIGksIGEpIHsK
LSAgICBhW2EubGVuZ3RoIC0gMSAtIGldID0gNTsKLSAgICByZXR1cm4gIShlICYgMSk7Ci19Ci1z
aG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoa2VlcEV2ZW5BbmRD
aGFuZ2UpJywgWzExLCAxNSwgMywgMTIsIDQ0XSwgdW5kZWZpbmVkLCBbNSwgNSwgNSwgNSwgNV0p
Iik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI0LjAgRXhjZXB0aW9uIFRlc3QiKTsKLWZ1bmN0aW9u
IGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlm
KGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAo
ZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
ZmluZCcsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IDEyKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoaXNC
aWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzksIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1k
ZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sgVGVzdCIpOwot
c2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoOCknLCBbMTIsIDE1
LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdmaW5kJywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIp
Owotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcobmV3IE9iamVj
dCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICco
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZpbmRJbmRleC5qcyBi
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZpbmRJbmRleC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMyNWQxZWQ4YWI4OTg1NjE1OTEwZDAwZjkwMDY0
MDI0NjAxNjNhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1maW5kSW5kZXguanMKKysr
IC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hl
Y2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGZ1
bmN0aW9uIgotKTsKLQotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleC5s
ZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleC5u
YW1lIiwgIidmaW5kSW5kZXgnIik7Ci1zaG91bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFj
aFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbmRJbmRleCcpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVSZWNlaXZlc0FycmF5KCdmaW5kSW5kZXgnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0s
IFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1
bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1
bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEuMCBTaW5n
bGUgQXJndW1lbnQgVGVzdGluZyIpOwotZnVuY3Rpb24ga2VlcEV2ZW4oZSwgaSkgewotICAgIHJl
dHVybiAhKGUgJiAxKSB8fCAodGhpcy5rZWVwID8gdGhpcy5rZWVwID09PSBpIDogZmFsc2UpOwot
fQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoa2Vl
cEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCAwKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW4pJywgWzExLCAxMywgMTcsIDEz
LCAyMl0sIDQpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZElu
ZGV4JywgJyhrZWVwRXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDExXSwgLTEpIik7Ci1kZWJ1Zygi
Iik7Ci0KLWRlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKLXZhciB0aGlzVmFsdWUg
PSB7IGtlZXA6IDMgfTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5k
SW5kZXgnLCAnKGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQ0XSwgMyki
KTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7Ci1m
dW5jdGlvbiBrZWVwRXZlbkFuZENoYW5nZShlLCBpLCBhKSB7Ci0gICAgYVthLmxlbmd0aCAtIDEg
LSBpXSA9IDU7Ci0gICAgcmV0dXJuICEoZSAmIDEpOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW5BbmRDaGFuZ2UpJywgWzExLCAx
NSwgMywgMTIsIDQ0XSwgLTEsIFs1LCA1LCA1LCA1LCA1XSkiKTsKLWRlYnVnKCIiKTsKLQotZGVi
dWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOwotZnVuY3Rpb24gaXNCaWdFbm91Z2hBbmRFeGNlcHRp
b24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7Ci0gICAgaWYoaW5kZXg9PTEpIHRocm93ICJleGNl
cHRpb24gZnJvbSBmdW5jdGlvbiI7Ci0gICAgcmV0dXJuIChlbGVtZW50ID49IDEwKTsKLX0KLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKGlzQmlnRW5v
dWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCAwKSIpOwotc2hvdWxkVGhy
b3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhpc0JpZ0Vub3VnaEFuZEV4
Y2VwdGlvbiknLCBbOSwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQot
ZGVidWcoIjUuMCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRUaHJvdygi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEz
LCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlu
ZEluZGV4JywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwot
c2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhuZXcgT2Jq
ZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAx
MywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2Zp
bmRJbmRleCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZv
ckVhY2guanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1mb3JFYWNo
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzdkM2UxYzk3YTg0ODQ0MzI1OThi
MTUxMjQxYTdiYzEyMDg0MThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZvckVhY2gu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZm9yRWFj
aCBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5mb3JFYWNo
Lmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5u
YW1lIiwgIidmb3JFYWNoJyIpOwotc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hU
eXBlZEFycmF5UHJvdG90eXBlKCdmb3JFYWNoJykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZVJlY2VpdmVzQXJyYXkoJ2ZvckVhY2gnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwg
dHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi12YXIgcGFzc2VkID0gdHJ1ZTsKLXZhciB0aGlz
UGFzc2VkID0gdHJ1ZTsKLXZhciB0eXBlZEFycmF5OwotZnVuY3Rpb24gY3JlYXRlQ2hlY2tlcihl
eHBlY3RlZCwgY2FsbGJhY2ssIHRoaXNWYWx1ZSkgewotICAgIGZ1bmN0aW9uIGNoZWNrQ29ycmVj
dChhcnJheSkgewotICAgICAgICBsZXQgbGlzdCA9IFtdCi0gICAgICAgIGZ1bmN0aW9uIGFjY3Vt
dWxhdGUoZSwgaSwgYSkgewotICAgICAgICAgICAgbGlzdC5wdXNoKGNhbGxiYWNrLmNhbGwodGhp
cywgZSwgaSwgYSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdHlwZWRBcnJheSA9IGFycmF5Owot
ICAgICAgICBhcnJheS5mb3JFYWNoKGFjY3VtdWxhdGUsIHRoaXNWYWx1ZSk7Ci0KLSAgICAgICAg
aWYgKGxpc3QubGVuZ3RoICE9PSBleHBlY3RlZC5sZW5ndGgpIHsKLSAgICAgICAgICAgIGRlYnVn
KCJmb3JFYWNoIGRpZCBub3Qgd29yayBjb3JyZWN0bHksIGNvbXB1dGVkIGFycmF5OiAiICsgbGlz
dCArICIgZXhwZWN0ZWQgYXJyYXk6ICIgKyBleHBlY3RlZCk7Ci0gICAgICAgICAgICBwYXNzZWQg
PSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5s
ZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGlmIChsaXN0W2ldICE9PSBleHBlY3RlZFtpXSkgewot
ICAgICAgICAgICAgICAgIGRlYnVnKCJmb3JFYWNoIGRpZCBub3Qgd29yayBjb3JyZWN0bHksIGNv
bXB1dGVkIGFycmF5OiAiICsgbGlzdCArICIgZXhwZWN0ZWQgYXJyYXk6ICIgKyBleHBlY3RlZCk7
Ci0gICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgfQot
Ci0gICAgcmV0dXJuIGNoZWNrQ29ycmVjdDsKLX0KLQotZnVuY3Rpb24gZm9vKGUsIGkpIHsKLSAg
ICBpZiAodGhpcy52YWx1ZSAhPT0gMykKLSAgICAgICAgdGhpc1Bhc3NlZCA9IGZhbHNlOwotICAg
IHJldHVybiBlOwotfQotCi0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsK
LQotZm9yRWFjaFR5cGVkQXJyYXkodHlwZWRBcnJheXMsIGNyZWF0ZUNoZWNrZXIoWzEsIDIsIDMs
IDQsIDVdLCBmb28sIHVuZGVmaW5lZCksIFsxLCAyLCAzLCA0LCA1XSk7Ci1zaG91bGRCZVRydWUo
InBhc3NlZCIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5n
Iik7Ci1wYXNzZWQgPSB0cnVlOwotdGhpc1Bhc3NlZCA9IHRydWU7Ci0KLWZvckVhY2hUeXBlZEFy
cmF5KHR5cGVkQXJyYXlzLCBjcmVhdGVDaGVja2VyKFsxLCAyLCAzLCA0LCA1XSwgZm9vLCB7IHZh
bHVlOiAzIH0pLCBbMSwgMiwgMywgNCwgNV0pOwotc2hvdWxkQmVUcnVlKCJwYXNzZWQgJiYgdGhp
c1Bhc3NlZCIpOwotCi1wYXNzZWQgPSB0cnVlOwotdGhpc1Bhc3NlZCA9IHRydWU7Ci1mb3JFYWNo
VHlwZWRBcnJheSh0eXBlZEFycmF5cywgY3JlYXRlQ2hlY2tlcihbMSwgMiwgMywgNCwgNV0sIGZv
bywgeyB2YWx1ZTogMiB9KSwgWzEsIDIsIDMsIDQsIDVdKTsKLXNob3VsZEJlVHJ1ZSgicGFzc2Vk
ICYmICF0aGlzUGFzc2VkIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQXJyYXkgRWxlbWVu
dCBDaGFuZ2luZyIpOwotZnVuY3Rpb24gY2hhbmdlQXJyYXkoZSwgaSwgYSkgewotICAgIGFbYS5s
ZW5ndGggLSAxIC0gaV0gPSA1OwotICAgIHJldHVybiBlOwotfQotCi1mb3JFYWNoVHlwZWRBcnJh
eSh0eXBlZEFycmF5cywgY3JlYXRlQ2hlY2tlcihbMTEsIDEyLCAxMywgNSwgNV0sIGNoYW5nZUFy
cmF5KSwgWzExLCAxMiwgMTMsIDE0LCAxNV0pOwotc2hvdWxkQmVUcnVlKCJwYXNzZWQgJiYgaGFz
U2FtZVZhbHVlcygnYXJyYXkgZGlkIG5vdCBtdXRhdGUgY29ycmVjdGx5JywgdHlwZWRBcnJheSwg
WzUsIDUsIDUsIDUsIDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBU
ZXN0Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwg
YXJyYXkpIHsKLSAgICBpZihpbmRleD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9u
IjsKLSAgICByZXR1cm4gKGVsZW1lbnQpOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVG
dW5jdGlvbignZm9yRWFjaCcsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzksIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlw
ZSBmb3IgQ2FsbGJhY2sgVGVzdCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bignZm9yRWFjaCcsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91
bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmb3JFYWNoJywgJyhcIndyb25nXCIpJywg
WzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZm9yRWFjaCcsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywg
NDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZvckVh
Y2gnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhy
b3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZm9yRWFjaCcsICcoKScsIFsxMiwgMTUsIDEwLCAx
MywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LWluZGV4T2YuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvdHlwZWRhcnJheS1pbmRleE9mLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYmY2MzU0ZmY3NDY4MTVkY2Y2NjM2ZDVhYzAwZjYyMjE4YzM1NzkwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy90eXBlZGFycmF5LWluZGV4T2YuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCww
IEBACi1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJ
bnQzMkFycmF5LnByb3RvdHlwZS5pbmRleE9mLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgiSW50
MzJBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5uYW1lIiwgIidpbmRleE9mJyIpOwotc2hvdWxkQmVU
cnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdpbmRleE9mJyki
KTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2luZGV4T2YnLCBb
dW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1k
ZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChu
YW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIi
KTsKLQotZnVuY3Rpb24ga2VlcEV2ZW4oZSwgaSkgewotICAgIHJldHVybiAhKGUgJiAxKSB8fCAo
dGhpcy5rZWVwID8gdGhpcy5rZWVwID09PSBpIDogZmFsc2UpOwotfQotCi12YXIgYXJyYXkgPSBb
MiwgNSwgOSwgMl0KLQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4
T2YnLCAnKDIsIC01MDApJywgYXJyYXksIDApIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5
cGVGdW5jdGlvbignaW5kZXhPZicsICcoOSwgNTAwKScsIGFycmF5LCAtMSkiKTsKLXNob3VsZEJl
VHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyKScsIGFycmF5LCAwKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4T2YnLCAnKDcpJywg
YXJyYXksIC0xKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4
T2YnLCAnKDIsIDMpJywgYXJyYXksIDMpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignaW5kZXhPZicsICcoMiwgMiknLCBhcnJheSwgMykiKTsKLXNob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAwKScsIGFycmF5LCAwKSIpOwot
c2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4T2YnLCAnKDIsIC0xKScs
IGFycmF5LCAzKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4
T2YnLCAnKDIsIC0yKScsIGFycmF5LCAzKSIpOwotZGVidWcoIiIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMgYi9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA4OTBmNjI3ZWUwMTgzMDQ3ZTQ5MDUwN2ZmZGY3MzY2
OTc4NzlmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWRlc2NyaXB0aW9uKAotIlRoaXMgdGVzdCBjaGVj
a3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBm
dW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhP
Zi5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmxhc3RJbmRl
eE9mLm5hbWUiLCAiJ2xhc3RJbmRleE9mJyIpOwotc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlv
bkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdsYXN0SW5kZXhPZicpIik7Ci1zaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdsYXN0SW5kZXhPZicsIFt1bmRlZmluZWQs
IHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3Ms
IGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOwotZGVidWcoIiIpOwotCi12YXIg
YXJyYXkgPSBbMiwgNSwgOSwgMl0KLQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2xhc3RJbmRleE9mJywgJygyLCAtNTAwKScsIGFycmF5LCAtMSkiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoOSwgNTAwKScsIGFycmF5
LCAyKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2xhc3RJbmRleE9m
JywgJygyKScsIGFycmF5LCAzKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2xhc3RJbmRleE9mJywgJyg1KScsIGFycmF5LCAxKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2xhc3RJbmRleE9mJywgJyg3KScsIGFycmF5LCAtMSkiKTsKLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgMykn
LCBhcnJheSwgMykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0
SW5kZXhPZicsICcoMiwgMiknLCBhcnJheSwgMCkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgMCknLCBhcnJheSwgMCkiKTsKLXNob3Vs
ZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgLTEpJywg
YXJyYXksIDMpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignbGFzdElu
ZGV4T2YnLCAnKDIsIC0yKScsIGFycmF5LCAwKSIpOwotZGVidWcoIiIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktbWFwLmpzIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktbWFwLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5NDMyZjZjM2M2ZTg0YWYwYmVkZmU1ODZjYTY0ZGZiZDUwM2I5N2U4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LW1hcC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ5ICsw
LDAgQEAKLWRlc2NyaXB0aW9uKAotIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRo
ZSBUeXBlZEFycmF5LnByb3RvdHlwZS5tYXAgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50
MzJBcnJheS5wcm90b3R5cGUubWFwLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgiSW50MzJBcnJh
eS5wcm90b3R5cGUubWFwLm5hbWUiLCAiJ21hcCciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVu
Y3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnbWFwJykiKTsKLXNob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ21hcCcsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwg
WyBdLCB0cnVlLCAnJ10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3MsIGluaXQsIHJlc3Vs
dCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMS4wIFNpbmds
ZSBBcmd1bWVudCBUZXN0aW5nIik7Ci1mdW5jdGlvbiBldmVuKGUsIGkpIHsKLSAgICByZXR1cm4g
IShlICYgMSkgfHwgKHRoaXMuY2hhbmdlID8gdGhpcy5jaGFuZ2UuaW5kZXhPZihpKSA+PSAwIDog
ZmFsc2UpOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICco
ZXZlbiknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFsxLCAwLCAxLCAwLCAxXSwgWzEyLCA1LCA4LCAx
MywgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICco
ZXZlbiknLCBbMTEsIDU0LCAxOCwgMTMsIDFdLCBbMCwgMSwgMSwgMCwgMF0pIik7Ci1kZWJ1Zygi
Iik7Ci0KLWRlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKLXZhciB0aGlzVmFsdWUg
PSB7IGNoYW5nZTogWzEsIDNdIH07Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignbWFwJywgJyhldmVuLCB0aGlzVmFsdWUpJywgWzEyLCAyMywgMTEsIDEsIDQ1XSwgWzEsIDEs
IDAsIDEsIDBdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hh
bmdpbmciKTsKLWZ1bmN0aW9uIGV2ZW5BbmRDaGFuZ2UoZSwgaSwgYSkgewotICAgIGFbYS5sZW5n
dGggLSAxIC0gaV0gPSA1OwotICAgIHJldHVybiAhKGUgJiAxKTsKLX0KLXNob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAnKGV2ZW5BbmRDaGFuZ2UpJywgWzEyLCAxNSwg
MiwgMTMsIDQ0XSwgWzEsIDAsIDEsIDAsIDBdLCBbNSwgNSwgNSwgNSwgNV0pIik7Ci1kZWJ1Zygi
Iik7Ci0KLWRlYnVnKCI0LjAgRXhjZXB0aW9uIFRlc3QiKTsKLWZ1bmN0aW9uIGlzQmlnRW5vdWdo
QW5kRXhjZXB0aW9uKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlmKGluZGV4PT0xKSB0
aHJvdyAiZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAoZWxlbWVudCA+PSAx
MCk7Ci19Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAnKGlzQmln
RW5vdWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRl
YnVnKCIiKTsKLQotZGVidWcoIjUuMCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1z
aG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAnKDgpJywgWzEyLCAxNSwg
MTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bignbWFwJywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwot
c2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignbWFwJywgJyhuZXcgT2JqZWN0KCkp
JywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90
b3R5cGVGdW5jdGlvbignbWFwJywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcoKScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LXJlZHVjZS5qcyBiL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LXJlZHVjZS5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzUyYzM5YzUzZGY1ZWFkNmRjZWI4MDEwZDE0NTEyNzAyOTMyMzVmNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1yZWR1Y2UuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw1NiArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlv
ciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlIGZ1bmN0aW9uIgotKTsKLQotc2hv
dWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLnJlZHVjZS5sZW5ndGgiLCAiMSIpOwotc2hvdWxk
QmUoIkludDMyQXJyYXkucHJvdG90eXBlLnJlZHVjZS5uYW1lIiwgIidyZWR1Y2UnIik7Ci1zaG91
bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ3JlZHVj
ZScpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdyZWR1Y2Un
LCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwot
Ci1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0
IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVn
KCIiKTsKLQotZGVidWcoIjEuMCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZyIpOwotZnVuY3Rpb24g
Y3JlYXRlQXJyYXkoYWNjLCBlLCBpLCBhKSB7Ci0gICAgaWYgKHR5cGVvZiBhY2MgIT09ICJvYmpl
Y3QiKQotICAgICAgICBhY2MgPSBbYWNjXTsKLSAgICBhY2MucHVzaChlKTsKLSAgICByZXR1cm4g
YWNjOwotfQotCi1mdW5jdGlvbiBzdW0oYWNjLCBlLCBpLCBhKSB7IHJldHVybiBhY2MgKyBlOyB9
Ci0KLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKGNyZWF0
ZUFycmF5KScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgWzEyLCA1LCA4LCAxMywgNDRdLCBbMTIsIDUs
IDgsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVk
dWNlJywgJyhzdW0pJywgWzEsIDIsIDMsIDQsIDVdLCAxNSkiKTsKLWRlYnVnKCIiKTsKLQotZGVi
dWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIpOwotCi1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhjcmVhdGVBcnJheSwgWzFdKScsIFsxMiwgMjMsIDEx
LCAxLCA0NV0sIFsxLCAxMiwgMjMsIDExLCAxLCA0NV0sIFsxMiwgMjMsIDExLCAxLCA0NV0pIik7
Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQXJyYXkgRWxlbWVudCBDaGFuZ2luZyIpOwotZnVu
Y3Rpb24gY3JlYXRlQXJyYXlBbmRDaGFuZ2UoYWNjLCBlLCBpLCBhKSB7Ci0gICAgYVthLmxlbmd0
aCAtIDEgLSBpXSA9IDU7Ci0gICAgYWNjLnB1c2goZSk7Ci0gICAgcmV0dXJuIGFjYzsKLX0KLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKGNyZWF0ZUFycmF5
QW5kQ2hhbmdlLCBbXSknLCBbMTIsIDE1LCAyLCAxMywgNDRdLCBbMTIsIDE1LCAyLCA1LCA1XSwg
WzUsIDUsIDUsIDUsIDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBU
ZXN0Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbihhY2MsIGVsZW1lbnQsIGlu
ZGV4LCBhcnJheSkgewotICAgIGlmKGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0aW9uIGZyb20gZnVu
Y3Rpb24iOwotICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91bGRUaHJvdygidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScs
IFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjUu
MCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRUaHJvdygidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNl
KSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhcIndy
b25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRl
c3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwg
MTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bigncmVkdWNlJywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNo
b3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoKScsIFsxMiwgMTUs
IDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDY4N2UwY2ZmZWQzMDljZThmMWQ0YTZjNzE5NWI1YjUyNjZmMzYx
N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw1NiArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRo
ZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgZnVuY3Rp
b24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQubGVu
Z3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5u
YW1lIiwgIidyZWR1Y2VSaWdodCciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JF
YWNoVHlwZWRBcnJheVByb3RvdHlwZSgncmVkdWNlUmlnaHQnKSIpOwotc2hvdWxkQmVUcnVlKCJ0
ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgncmVkdWNlUmlnaHQnLCBbdW5kZWZpbmVkLCB0aGlz
LCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0
LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEu
MCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZyIpOwotZnVuY3Rpb24gY3JlYXRlQXJyYXkoYWNjLCBl
LCBpLCBhKSB7Ci0gICAgaWYgKHR5cGVvZiBhY2MgIT09ICJvYmplY3QiKQotICAgICAgICBhY2Mg
PSBbYWNjXTsKLSAgICBhY2MucHVzaChlKTsKLSAgICByZXR1cm4gYWNjOwotfQotCi1mdW5jdGlv
biBzdW0oYWNjLCBlLCBpLCBhKSB7IHJldHVybiBhY2MgKyBlOyB9Ci0KLXNob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoY3JlYXRlQXJyYXkpJywgWzEy
LCA1LCA4LCAxMywgNDRdLCBbMTIsIDUsIDgsIDEzLCA0NF0ucmV2ZXJzZSgpLCBbMTIsIDUsIDgs
IDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNl
UmlnaHQnLCAnKHN1bSknLCBbMSwgMiwgMywgNCwgNV0sIDE1KSIpOwotZGVidWcoIiIpOwotCi1k
ZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Ci0KLXNob3VsZEJlVHJ1ZSgidGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoY3JlYXRlQXJyYXksIFsxXSknLCBbMTIs
IDIzLCAxMSwgMSwgNDVdLCBbMSwgNDUsIDEsIDExLCAyMywgMTJdLCBbMTIsIDIzLCAxMSwgMSwg
NDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmci
KTsKLWZ1bmN0aW9uIGNyZWF0ZUFycmF5QW5kQ2hhbmdlKGFjYywgZSwgaSwgYSkgewotICAgIGFb
YS5sZW5ndGggLSAxIC0gaV0gPSA1OwotICAgIGFjYy5wdXNoKGUpOwotICAgIHJldHVybiBhY2M7
Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlUmlnaHQnLCAn
KGNyZWF0ZUFycmF5QW5kQ2hhbmdlLCBbXSknLCBbMTIsIDE1LCAyLCAxMywgNDRdLCBbNDQsIDEz
LCAyLCA1LCA1XSwgWzUsIDUsIDUsIDUsIDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4w
IEV4Y2VwdGlvbiBUZXN0Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbihhY2Ms
IGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlmKGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0
aW9uIGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91
bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoaXNCaWdFbm91
Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotZGVidWco
IiIpOwotCi1kZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKLXNob3Vs
ZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZVJpZ2h0JywgJyg4KScsIFsxMiwg
MTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ3JlZHVjZVJpZ2h0JywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlUmln
aHQnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1z
aG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcobnVsbCkn
LCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBm
YWxzZSkiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy90eXBlZGFycmF5LXNsaWNlLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5
cGVkYXJyYXktc2xpY2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyZGZhM2Q4
YjhhMzY0ZTI4MGE4YTdlMjdkYTJlNDU2MzM2MWU2ZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVk
YXJyYXktc2xpY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1kZXNjcmlwdGlv
bigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90
b3R5cGUuc2xpY2UgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5
cGUuc2xpY2UubGVuZ3RoIiwgIjIiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5z
bGljZS5uYW1lIiwgIidzbGljZSciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JF
YWNoVHlwZWRBcnJheVByb3RvdHlwZSgnc2xpY2UnKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJv
dG90eXBlUmVjZWl2ZXNBcnJheSgnc2xpY2UnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwg
dHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9u
IGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAs
IGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEuMCBUZXN0IEJhc2lj
IEZ1bmN0aW9uYWxpdHkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdz
bGljZScsICcoMiwgMyknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFs4XSwgWzEyLCA1LCA4LCAxMywg
NDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NsaWNlJywgJyg1
LCA1KScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgW10pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbignc2xpY2UnLCAnKDAsIDUpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbMTIs
IDUsIDgsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
c2xpY2UnLCAnKDAsIC01KScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgW10pIik7Ci1zaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignc2xpY2UnLCAnKC0zLCAtMiknLCBbMTIsIDUsIDgs
IDEzLCA0NF0sIFs4XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdz
bGljZScsICcoNCwgMiknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFtdKSIpOwotc2hvdWxkQmVUcnVl
KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NsaWNlJywgJygtNTAsIDUwKScsIFsxMiwgNSwgOCwg
MTMsIDQ0XSwgWzEyLCA1LCA4LCAxMywgNDRdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4w
IFByZXNlcnZlIFVuZGVybHlpbmcgYml0cyIpOwotCi12YXIgaW50VmlldyA9IG5ldyBJbnQzMkFy
cmF5KDUpOwotaW50Vmlld1swXSA9IC0xOwotdmFyIGZsb2F0VmlldyA9IG5ldyBGbG9hdDMyQXJy
YXkoaW50Vmlldy5idWZmZXIpOwotZmxvYXRWaWV3ID0gZmxvYXRWaWV3LnNsaWNlKDAsMSk7Ci1p
bnRWaWV3ID0gbmV3IEludDMyQXJyYXkoZmxvYXRWaWV3LmJ1ZmZlcik7Ci0KLXNob3VsZEJlKCJp
bnRWaWV3WzBdIiwgIi0xIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQ3JlYXRlcyBOZXcg
QnVmZmVyIik7Ci0KLXZhciBpbnRWaWV3ID0gbmV3IEludDMyQXJyYXkoMSkKLXZhciBuZXdWaWV3
ID0gaW50Vmlldy5zbGljZSgwLDEpOwotbmV3Vmlld1swXSA9IDE7Ci0KLXNob3VsZEJlKCJpbnRW
aWV3WzBdIiwgIjAiKTsKLWRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy90eXBlZGFycmF5LXNvbWUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvdHlwZWRhcnJheS1zb21lLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NGNl
YzVlN2JiYzQ3Nzg0NjM5YTRiZTk4ZDg0NjgxZGY3Y2MxOGNmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90
eXBlZGFycmF5LXNvbWUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1kZXNjcmlw
dGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5w
cm90b3R5cGUuc29tZSBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3Rv
dHlwZS5zb21lLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUu
c29tZS5uYW1lIiwgIidzb21lJyIpOwotc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlvbkZvckVh
Y2hUeXBlZEFycmF5UHJvdG90eXBlKCdzb21lJykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZVJlY2VpdmVzQXJyYXkoJ3NvbWUnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1
ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhh
cyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4
cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEuMCBTaW5nbGUgQXJndW1l
bnQgVGVzdGluZyIpOwotZnVuY3Rpb24gaXNCaWdFbm91Z2goZWxlbWVudCwgaW5kZXgsIGFycmF5
KSB7Ci0gICAgaWYgKHRoaXMudmFsdWUpCi0gICAgICAgIHJldHVybiBlbGVtZW50ID49IHRoaXMu
dmFsdWU7Ci0gICAgcmV0dXJuIGVsZW1lbnQgPj0gMTA7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91Z2gpJywgWzEyLCA1LCA4LCAxMywg
NDRdLCB0cnVlLCBbMTIsIDUsIDgsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91Z2gpJywgWzIsIDQsIDgsIDMsIDRdLCBm
YWxzZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIp
OwotdmFyIHRoaXNWYWx1ZSA9IHsgdmFsdWU6IDExIH07Ci1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91Z2gsIHRoaXNWYWx1ZSknLCBbMiwgNSwg
MTAsIDMsIDRdLCBmYWxzZSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdzb21lJywgJyhpc0JpZ0Vub3VnaCwgdGhpc1ZhbHVlKScsIFsxMiwgNTQsIDgyLCAxMywgNDRd
LCB0cnVlKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdp
bmciKTsKLWZ1bmN0aW9uIGlzQmlnRW5vdWdoQW5kQ2hhbmdlKGVsZW1lbnQsIGluZGV4LCBhcnJh
eSkgewotICAgIGFycmF5W2FycmF5Lmxlbmd0aCAtIDEgLSBpbmRleF0gPSA1OwotICAgIHJldHVy
biAoZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignc29tZScsICcoaXNCaWdFbm91Z2hBbmRDaGFuZ2UpJywgWzIsIDUsIDEsIDEzLCA0NF0sIGZh
bHNlLCBbNSwgNSwgNSwgNSwgNV0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5j
dGlvbignc29tZScsICcoaXNCaWdFbm91Z2hBbmRDaGFuZ2UpJywgWzEyLCAxNSwgMTAsIDEzLCA0
NF0sIHRydWUsIFsxMiwgMTUsIDEwLCAxMywgNV0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI0
LjAgRXhjZXB0aW9uIFRlc3QiKTsKLWZ1bmN0aW9uIGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKGVs
ZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlmKGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0aW9u
IGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91Z2hBbmRFeGNl
cHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIHRydWUpIik7Ci1zaG91bGRUaHJvdygidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBb
MSwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjUuMCBX
cm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdzb21lJywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsK
LXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKFwid3JvbmdcIikn
LCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdzb21lJywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0
NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScs
ICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IGZhbHNlKSIpOwotZGVidWcoIiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL3R5cGVkYXJyYXktc29ydC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy90
eXBlZGFycmF5LXNvcnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZWRhMDdh
OWVkNGIwZjA0ZTljODAzN2E5MTY0MGYzMzFmY2E0NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVk
YXJyYXktc29ydC5qcworKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLWRlc2NyaXB0aW9u
KAotIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3Rv
dHlwZS5zb3J0IGZ1bmN0aW9uIgotKTsKLQotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBl
LnNvcnQubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5zb3J0
Lm5hbWUiLCAiJ3NvcnQnIik7Ci1zaG91bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5
cGVkQXJyYXlQcm90b3R5cGUoJ3NvcnQnKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
UmVjZWl2ZXNBcnJheSgnc29ydCcsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAn
J10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRo
ZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0
ZWRBcnJheSBdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMS4wIE5vIEFyZ3VtZW50IFRlc3Rp
bmciKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJygpJywg
WzEyLCA1LCA4LCAxMywgNDRdLCBbNSwgOCwgMTIsIDEzLCA0NF0sIFs1LCA4LCAxMiwgMTMsIDQ0
XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJygpJywg
WzIsIDQsIDgsIDMsIDRdLCBbMiwgMywgNCwgNCwgOF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVn
KCIxLjEgU2lnbmVkIE51bWJlcnMiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0
aW9uT25TaWduZWQoJ3NvcnQnLCAnKCknLCBbMTIsIC01LCA4LCAtMTMsIDQ0XSwgWy0xMywgLTUs
IDgsIDEyLCA0NF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjIgRmxvYXQgTnVtYmVycyIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb25PbkZsb2F0KCdzb3J0JywgJygp
JywgWzEyLCAtNSwgMCwgLTAsIC0xMywgNDRdLCBbLTEzLCAtNSwgLTAsIDAsIDEyLCA0NF0pIik7
Ci0KLWRlYnVnKCIxLjMgTmVnYXRpdmUgTmFOcyIpOwotdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcig4KTsKLXZhciBpbnRWaWV3ID0gbmV3IEludDMyQXJyYXkoYnVmZmVyKTsKLXZhciBmbG9h
dFZpZXcgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7Ci1pbnRWaWV3WzBdID0gLTE7Ci0KLWZs
b2F0Vmlldy5zb3J0KCk7Ci1zaG91bGRCZVRydWUoIk9iamVjdC5pcyhmbG9hdFZpZXdbMF0sMCkg
JiYgT2JqZWN0LmlzKGZsb2F0Vmlld1sxXSwgTmFOKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1Zygi
Mi4wIEN1c3RvbSBGdW5jdGlvbiBUZXN0aW5nIik7Ci1mdW5jdGlvbiBzb3J0QmFja3dhcmRzKGEs
IGIpIHsgcmV0dXJuIGIgLSBhOyB9Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignc29ydCcsICcoc29ydEJhY2t3YXJkcyknLCBbMiwgNSwgMTAsIDMsIDRdLCBbMTAsIDUsIDQs
IDMsIDJdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEV4Y2VwdGlvbiBUZXN0Iik7Ci12
YXIgY291bnQgPSAwOwotZnVuY3Rpb24gY29tcGFyZUV4Y2VwdGlvbihhLCBiKSB7Ci0gICAgaWYo
Y291bnQrKyA9PT0gNCkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAgICByZXR1
cm4gYSA8IGI7Ci19Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0Jywg
Jyhjb21wYXJlRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCB0cnVlKSIpOwotZGVi
dWcoIiIpOwotCi1kZWJ1ZygiNC4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJyg4KScsIFsxMiwgMTUs
IDEwLCAxMywgNDRdLCBbMTAsIDEyLCAxMywgMTUsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEz
LCA0NF0sIFsxMCwgMTIsIDEzLCAxNSwgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90
eXBlRnVuY3Rpb24oJ3NvcnQnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgWzEwLCAxMiwgMTMsIDE1LCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignc29ydCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgWzEwLCAxMiwg
MTMsIDE1LCA0NF0pIik7Ci1kZWJ1ZygiIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzYjA2NWVjN2I1NjE4YTkzODhmMDkxMGY1
MDBjYjBmMmM5ZTU4ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8vQCBza2lwCi12
YXIgdHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJh
eSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9h
dDMyQXJyYXksIEZsb2F0NjRBcnJheV07Ci0KLXZhciBzaWduZWRBcnJheXMgPSBbSW50OEFycmF5
LCBJbnQxNkFycmF5LCBJbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07Ci0K
LXZhciBmbG9hdEFycmF5cyA9IFtGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07Ci0KLWZ1bmN0
aW9uIGZvckVhY2hUeXBlZEFycmF5KGNvbnN0cnVjdG9ycywgdGVzdEZ1bmN0aW9uIC8qICwgaW5p
dGlhbFZhbHVlcyAqLyApIHsKLSAgICBsZXQgaW5pdGlhbFZhbHVlcyA9IGFyZ3VtZW50c1syXTsK
LSAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7ICsraSkgewotICAg
ICAgICBsZXQgdHlwZWRBcnJheSA9IGNvbnN0cnVjdG9yc1tpXTsKLQotICAgICAgICBsZXQgYXJy
YXk7Ci0gICAgICAgIGlmIChpbml0aWFsVmFsdWVzKSB7Ci0gICAgICAgICAgICBhcnJheSA9IG5l
dyB0eXBlZEFycmF5KGluaXRpYWxWYWx1ZXMpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGFycmF5ID0gbmV3IHR5cGVkQXJyYXkoKTsKLQotICAgICAgICBsZXQgdGVzdFJlc3VsdCA9IHRl
c3RGdW5jdGlvbihhcnJheSwgdHlwZWRBcnJheSkKLSAgICAgICAgaWYgKHRlc3RSZXN1bHQgIT09
IHRydWUpCi0gICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsKLSAgICB9Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVBy
b3RvdHlwZShuYW1lKSB7Ci0gICAgZnVuY3Rpb24gZXEoYXJyYXkpIHsgcmV0dXJuIGFycmF5W25h
bWVdID09PSBJbnQzMkFycmF5LnByb3RvdHlwZVtuYW1lXTsgfQotICAgIHJldHVybiBmb3JFYWNo
VHlwZWRBcnJheSh0eXBlZEFycmF5cywgZXEpOwotfQotCi1mdW5jdGlvbiBoYXNTYW1lVmFsdWVz
KG1zZywgYXJyYXkxLCBhcnJheTIpIHsKLSAgICBpZiAoYXJyYXkxLmxlbmd0aCAhPT0gYXJyYXky
Lmxlbmd0aCkgewotICAgICAgICBkZWJ1Zyhtc2cgKyAgIiBmaXJzdCBhcnJheTogIiArIGFycmF5
MSArICIgc2Vjb25kIGFycmF5OiAiICsgYXJyYXkyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIGxldCBhbGxTYW1lID0gdHJ1ZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGFycmF5MS5sZW5ndGg7ICsraSkgewotICAgICAgICBhbGxTYW1lID0gYWxsU2FtZSAmJiBPYmpl
Y3QuaXMoYXJyYXkxW2ldLCBhcnJheTJbaV0pOwotICAgIH0KLQotICAgIGlmICghYWxsU2FtZSkK
LSAgICAgICAgZGVidWcobXNnICsgICIgZmlyc3QgYXJyYXk6ICIgKyBhcnJheTEgKyAiIHNlY29u
ZCBhcnJheTogIiArIGFycmF5Mik7Ci0gICAgcmV0dXJuIGFsbFNhbWU7Ci0KLX0KLQotZnVuY3Rp
b24gdGVzdFByb3RvdHlwZUZ1bmN0aW9uSGVscGVyKGNvbnN0cnVjdG9ycywgbmFtZSwgYXJncywg
aW5pdCwgcmVzdWx0LCBleHBlY3RlZEFycmF5KSB7Ci0KLSAgICBmdW5jdGlvbiBmb28oYXJyYXks
IGNvbnN0cnVjdG9yKSB7Ci0gICAgICAgIGxldCByZXMgPSBldmFsKCJhcnJheS4iICsgbmFtZSAr
IGFyZ3MpOwotCi0gICAgICAgIGlmIChleHBlY3RlZEFycmF5KSB7Ci0gICAgICAgICAgICBpZiAo
IWhhc1NhbWVWYWx1ZXMoImFycmF5IGRpZCBub3QgY2hhbmdlIGNvcnJlY3RseSBvbiAiICsgY29u
c3RydWN0b3IgKyAiLCIsIGFycmF5LCBleHBlY3RlZEFycmF5KSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0g
Im9iamVjdCIpCi0gICAgICAgICAgICByZXR1cm4gaGFzU2FtZVZhbHVlcyhuYW1lICsgIiByZXR1
cm5lZCB0aGUgd3JvbmcgcmVzdWx0IG9uICIgKyBjb25zdHJ1Y3RvciArICIsIiwgcmVzLCByZXN1
bHQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChyZXMgIT09IHJlc3VsdCkgewot
ICAgICAgICAgICAgICAgIGRlYnVnKG5hbWUgKyAiIHJldHVybmVkIHRoZSB3cm9uZyByZXN1bHQg
b24gIiArIGNvbnN0cnVjdG9yICsgIiwgcmV0dXJuZWQ6ICIgKyByZXMgKyAiIGJ1dCBleHBlY3Rl
ZDogIiArIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBy
ZXR1cm4gZm9yRWFjaFR5cGVkQXJyYXkoY29uc3RydWN0b3JzLCBmb28sIGluaXQpOwotfQotCi1m
dW5jdGlvbiB0ZXN0UHJvdG90eXBlRnVuY3Rpb25PblNpZ25lZChuYW1lLCBhcmdzLCBpbml0LCBy
ZXN1bHQgLyogZXhwZWN0ZWRBcnJheSAqLykgewotICAgIHJldHVybiB0ZXN0UHJvdG90eXBlRnVu
Y3Rpb25IZWxwZXIoc2lnbmVkQXJyYXlzLCBuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQsIGFyZ3Vt
ZW50c1s0XSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQcm90b3R5cGVGdW5jdGlvbk9uRmxvYXQobmFt
ZSwgYXJncywgaW5pdCwgcmVzdWx0IC8qIGV4cGVjdGVkQXJyYXkgKi8pIHsKLSAgICByZXR1cm4g
dGVzdFByb3RvdHlwZUZ1bmN0aW9uSGVscGVyKGZsb2F0QXJyYXlzLCBuYW1lLCBhcmdzLCBpbml0
LCByZXN1bHQsIGFyZ3VtZW50c1s0XSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQcm90b3R5cGVGdW5j
dGlvbihuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgLyogZXhwZWN0ZWRBcnJheSAqLykgewotICAg
IHJldHVybiB0ZXN0UHJvdG90eXBlRnVuY3Rpb25IZWxwZXIodHlwZWRBcnJheXMsIG5hbWUsIGFy
Z3MsIGluaXQsIHJlc3VsdCwgYXJndW1lbnRzWzRdKTsKLX0KLQotZnVuY3Rpb24gdGVzdFByb3Rv
dHlwZVJlY2VpdmVzQXJyYXkobmFtZSwgdGhpc1ZhbHVlcykgewotICAgIGZ1bmN0aW9uIHRlc3Rl
ciAoYXJyYXksIGNvbnN0cnVjdG9yKSB7Ci0gICAgICAgIHZhciBwYXNzZWQgPSB0cnVlOwotICAg
ICAgICBmb3IgKHZhciB0aGlzVmFsdWUgb2YgdGhpc1ZhbHVlcykgewotICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICBldmFsKCJhcnJheS4iICsgbmFtZSkuY2FsbCh0aGlzVmFsdWUp
OwotICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGRlYnVn
KCJkaWQgbm90IHRocm93IGFuIGVycm9yIHdoZW4gZ2l2ZW4gYW4gaW52YWxpZCB8dGhpc3wgb24g
IiArIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge30KLQotICAgICAg
ICB9Ci0KLSAgICAgICAgcmV0dXJuIHBhc3NlZDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZm9yRWFj
aFR5cGVkQXJyYXkodHlwZWRBcnJheXMsIHRlc3Rlcik7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy90eXBlZGFycmF5LWNvcHlXaXRoaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvdHlwZWRhcnJheS1jb3B5V2l0aGluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTFmN2M1OThlYzk0MzYyYjk5MWY2MWM4YWMxYjQzMGQyYThmZTU1NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9q
cy90eXBlZGFycmF5LWNvcHlXaXRoaW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTggKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJy
YXkucHJvdG90eXBlLmNvcHlXaXRoaW4gZnVuY3Rpb24KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1MgSW50MzJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbi5sZW5ndGggaXMg
MgotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluLm5hbWUgaXMgJ2NvcHlXaXRo
aW4nCi1QQVNTIGlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2NvcHlX
aXRoaW4nKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdjb3B5V2l0
aGluJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1ZQotUEFT
UyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2NvcHlXaXRoaW4nLCAnKDAsIDMpJywgWzEsIDIsIDMs
IDQsIDVdLCBbNCwgNSwgMywgNCwgNV0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdjb3B5V2l0aGluJywgJygwLCAzLCA0KScsIFsxLCAyLCAzLCA0LCA1XSwgWzQsIDIsIDMs
IDQsIDVdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignY29weVdpdGhpbics
ICcoMCwgLTIsIC0xKScsIFsxLCAyLCAzLCA0LCA1XSwgWzQsIDIsIDMsIDQsIDVdKSBpcyB0cnVl
Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignY29weVdpdGhpbicsICcoNSwgLTUsIDUpJywg
WzEsIDIsIDMsIDQsIDVdLCBbMSwgMiwgMywgNCwgNV0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdjb3B5V2l0aGluJywgJygxLCAtNSwgNSknLCBbMSwgMiwgMywgNCwgNV0s
IFsxLCAxLCAyLCAzLCA0XSkgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJy
YXktY29weVdpdGhpbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1jb3B5V2l0aGlu
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NmRiMTdkNjkwMDc4ZjBlNmQ3
NGNlYjYxYTMyNmNmYWUyYWVlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1jb3B5V2l0aGluLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LWNvcHlXaXRoaW4u
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
dHlwZWRhcnJheS1ldmVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5
LWV2ZXJ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUyOTg2
NzdjZmNkYjUxMWNlMzNlOTc4ZGUyOTI4NjI2NzQ2MDJjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWV2ZXJ5
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVRoaXMgdGVzdCBj
aGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5ldmVyeSBmdW5j
dGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBJbnQzMkFycmF5LnBy
b3RvdHlwZS5ldmVyeS5sZW5ndGggaXMgMQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5ldmVy
eS5uYW1lIGlzICdldmVyeScKLVBBU1MgaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVBy
b3RvdHlwZSgnZXZlcnknKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5
KCdldmVyeScsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIGlzIHRydWUK
LQotdGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1l
LCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkKLQotMS4wIFNpbmdsZSBB
cmd1bWVudCBUZXN0aW5nCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlz
QmlnRW5vdWdoKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgZmFsc2UpIGlzIHRydWUKLVBBU1MgdGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoaXNCaWdFbm91Z2gpJywgWzEyLCA1NCwgMTgs
IDEzLCA0NF0sIHRydWUpIGlzIHRydWUKLQotMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nCi1QQVNT
IHRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5vdWdoLCB0aGlzVmFsdWUp
JywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5
cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5vdWdoLCB0aGlzVmFsdWUpJywgWzEyLCA1NCwg
ODIsIDEzLCA0NF0sIHRydWUpIGlzIHRydWUKLQotMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmcK
LVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoaXNCaWdFbm91Z2hBbmRDaGFu
Z2UpJywgWzEyLCAxNSwgMSwgMTMsIDQ0XSwgZmFsc2UsIFsxMiwgMTUsIDUsIDUsIDVdKSBpcyB0
cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5vdWdoQW5k
Q2hhbmdlKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSwgWzEyLCA1LCA1LCA1LCA1XSkg
aXMgdHJ1ZQotCi00LjAgRXhjZXB0aW9uIFRlc3QKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdldmVyeScsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0
NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24uCi0KLTUu
MCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlv
bignZXZlcnknLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0
IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKCJ3
cm9uZyIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5ldmVyeSBjYWxsYmFjayBtdXN0IGJlIGEgZnVu
Y3Rpb24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKG5ldyBPYmplY3Qo
KSknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
bi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcobnVsbCknLCBbMTIsIDE1
LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJy
YXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBm
YWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZXZl
cnkgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
dHlwZWRhcnJheS1ldmVyeS5odG1sIGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1ldmVyeS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2ZjYTZjY2FlNzIyYzRiNWFmYjM0
MmFlMjcxMmIzOWFmNDdiMWE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZXZlcnkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktZXZlcnkuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1m
aWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmlsbC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMjJhOGU1YTg3ZDMyZjlkMWFh
MTk5MWRmOTgzNjAwYjFmZjI0MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1maWxsLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWxsIGZ1bmN0aW9uCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLmZpbGwubGVu
Z3RoIGlzIDEKLVBBU1MgSW50MzJBcnJheS5wcm90b3R5cGUuZmlsbC5uYW1lIGlzICdmaWxsJwot
UEFTUyBpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdmaWxsJykgaXMg
dHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmlsbCcsIFt1bmRlZmluZWQs
IHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIGlzIHRydWUKLQotdGVzdFByb3RvdHlwZUZ1bmN0
aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQg
WyAsIGV4cGVjdGVkQXJyYXkgXSkKLQotMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nCi1QQVNT
IHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoMTIpJywgWzE1LCA1LCA4LCAxMywgNDRd
LCBbMTIsMTIsMTIsMTIsMTJdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbign
ZmlsbCcsICcodHJ1ZSknLCBbMTIsIDU0LCAxOCwgMTMsIDQ0XSwgWzEsMSwxLDEsMV0pIGlzIHRy
dWUKLQotMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlv
bignZmlsbCcsICcoMTIsIDIpJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEyLCAx
MiwgMTJdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoNCwg
TmFOKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbNCwgNCwgNCwgNCwgNF0pIGlzIHRydWUKLVBB
U1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAtNSknLCBbMTQsIDE1LCAxMCwg
MTMsIDQ0XSwgWzQsIDQsIDQsIDQsIDRdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5j
dGlvbignZmlsbCcsICcoNCwgLTEpJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEw
LCAxMywgNF0pIGlzIHRydWUKLQotMy4wIFRocmVlIEFyZ3VtZW50IFRlc3RpbmcKLVBBU1MgdGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAtMSwgMCknLCBbMTQsIDE1LCAxMCwgMTMs
IDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaWxsJywgJyg0LCAxLCAxKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQsIDE1
LCAxMCwgMTMsIDQ0XSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwn
LCAnKDQsIDEsIE5hTiknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0
NF0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCBOYU4s
IE5hTiknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIGlzIHRy
dWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCBOYU4sIDUpJywgWzE0
LCAxNSwgMTAsIDEzLCA0NF0sIFs0LCA0LCA0LCA0LCA0XSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAnKDQsIC0zLCAtMiknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0
XSwgWzE0LCAxNSwgNCwgMTMsIDQ0XSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbGwnLCAnKDQsIDUsIDUpJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEw
LCAxMywgNDRdKSBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1maWxs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWZpbGwuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmM5MjEzOWQ1ZGJjMWI4ZjUxMzlkYzM2ZjI1MjYyYmViMGQ5YmM0
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy90eXBlZGFycmF5LWZpbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg
QEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFy
cmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3R5cGVkYXJyYXktZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWZpbHRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWZpbHRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxNTJlOGU5NzJiZDgxZjI2MTY1ODQzOGVjYWMzNjc3ODlh
YTEzMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvdHlwZWRhcnJheS1maWx0ZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzYgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5
cGVkQXJyYXkucHJvdG90eXBlLmZpbHRlciBmdW5jdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5maWx0ZXIubGVuZ3RoIGlzIDEK
LVBBU1MgSW50MzJBcnJheS5wcm90b3R5cGUuZmlsdGVyLm5hbWUgaXMgJ2ZpbHRlcicKLVBBU1Mg
aXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnZmlsdGVyJykgaXMgdHJ1
ZQotUEFTUyB0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmlsdGVyJywgW3VuZGVmaW5lZCwg
dGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1ZQotCi10ZXN0UHJvdG90eXBlRnVuY3Rp
b24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3MsIGluaXQsIHJlc3VsdCBb
ICwgZXhwZWN0ZWRBcnJheSBdKQotCi0xLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmcKLVBBU1Mg
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0ZXInLCAnKGtlZXBFdmVuKScsIFsxMiwgNSwgOCwg
MTMsIDQ0XSwgWzEyLCA4LCA0NF0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdmaWx0ZXInLCAnKGtlZXBFdmVuKScsIFsxMSwgNTQsIDE4LCAxMywgMV0sIFs1NCwgMThdKSBp
cyB0cnVlCi0KLTIuMCBUd28gQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ2ZpbHRlcicsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTIsIDIzLCAxMSwgMSwg
NDVdLCBbMTIsIDIzLCAxXSkgaXMgdHJ1ZQotCi0zLjAgQXJyYXkgRWxlbWVudCBDaGFuZ2luZwot
UEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICcoa2VlcEV2ZW5BbmRDaGFuZ2Up
JywgWzEyLCAxNSwgMiwgMTMsIDQ0XSwgWzEyLCAyXSwgWzUsIDUsIDUsIDUsIDVdKSBpcyB0cnVl
Ci0KLTQuMCBFeGNlcHRpb24gVGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRl
cicsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSB0aHJldyBleGNlcHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24uCi0KLTUuMCBXcm9u
ZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmls
dGVyJywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rp
b24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsdGVyJywgJygid3JvbmciKScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJy
YXkucHJvdG90eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmlsdGVyJywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAs
IDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5
cGUubWFwIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaWx0ZXInLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUubWFwIGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0ZXInLCAn
KCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFycmF5LnByb3RvdHlwZS5tYXAgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1maWx0ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2pzL3R5cGVkYXJyYXktZmlsdGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFmY2NmMzA3Y2Y0NmY0ZDc2MTU4ZDIwYzIxZGMxODAxN2YwMjAwZjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJh
eS1maWx0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3R5cGVk
YXJyYXktZmlsdGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy90eXBlZGFycmF5LWZpbmQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NDI5MDhiYTIzZTk2NzJlZDNhYWI3ZDU0Y2UwMjdmMzNjODQ0MTY2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVk
YXJyYXktZmluZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1U
aGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUu
ZmluZCBmdW5jdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBJbnQz
MkFycmF5LnByb3RvdHlwZS5maW5kLmxlbmd0aCBpcyAxCi1QQVNTIEludDMyQXJyYXkucHJvdG90
eXBlLmZpbmQubmFtZSBpcyAnZmluZCcKLVBBU1MgaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRB
cnJheVByb3RvdHlwZSgnZmluZCcpIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZVJlY2VpdmVz
QXJyYXkoJ2ZpbmQnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSBpcyB0
cnVlCi0KLXRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAo
bmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pCi0KLTEuMCBTaW5n
bGUgQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAn
KGtlZXBFdmVuKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgMTIpIGlzIHRydWUKLVBBU1MgdGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhrZWVwRXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDIy
XSwgMjIpIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhrZWVw
RXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDExXSwgdW5kZWZpbmVkKSBpcyB0cnVlCi0KLTIuMCBU
d28gQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAn
KGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQ0XSwgMSkgaXMgdHJ1ZQot
Ci0zLjAgQXJyYXkgRWxlbWVudCBDaGFuZ2luZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24o
J2ZpbmQnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUsIDMsIDEyLCA0NF0sIHVuZGVm
aW5lZCwgWzUsIDUsIDUsIDUsIDVdKSBpcyB0cnVlCi0KLTQuMCBFeGNlcHRpb24gVGVzdAotUEFT
UyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9u
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCAxMikgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmQnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFs5LCAxNSwgMTAs
IDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24u
Ci0KLTUuMCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVG
dW5jdGlvbignZmluZCcsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmQgY2FsbGJhY2sg
bXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAn
KCJ3cm9uZyIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kIGNhbGxiYWNrIG11c3QgYmUgYSBm
dW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhuZXcgT2JqZWN0
KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
bi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhudWxsKScsIFsxMiwgMTUs
IDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJh
eS5wcm90b3R5cGUuZmluZCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZCBj
YWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy90eXBl
ZGFycmF5LWZpbmQuaHRtbCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTRlMTRhNmU1ODAxZDIzNmE1NjFkZjkxM2Rj
MTJjYzQ5YjM3ZTRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1maW5kLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZEluZGV4
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZEluZGV4LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM5YzQzNGM4MWJiZjUzY2Mz
N2RkNDFiNmJmNTliMzQ0ZTM4OTRmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWZpbmRJbmRleC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRo
ZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGZ1bmN0aW9u
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIEludDMyQXJyYXkucHJvdG90
eXBlLmZpbmRJbmRleC5sZW5ndGggaXMgMQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5maW5k
SW5kZXgubmFtZSBpcyAnZmluZEluZGV4JwotUEFTUyBpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBl
ZEFycmF5UHJvdG90eXBlKCdmaW5kSW5kZXgnKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVS
ZWNlaXZlc0FycmF5KCdmaW5kSW5kZXgnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1
ZSwgJyddKSBpcyB0cnVlCi0KLXRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2lu
ZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0p
Ci0KLTEuMCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCAwKSBpcyB0
cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhrZWVwRXZlbikn
LCBbMTEsIDEzLCAxNywgMTMsIDIyXSwgNCkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW4pJywgWzExLCAxMywgMTcsIDEzLCAxMV0sIC0x
KSBpcyB0cnVlCi0KLTIuMCBUd28gQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAx
MSwgMSwgNDRdLCAzKSBpcyB0cnVlCi0KLTMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nCi1QQVNT
IHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhrZWVwRXZlbkFuZENoYW5nZSkn
LCBbMTEsIDE1LCAzLCAxMiwgNDRdLCAtMSwgWzUsIDUsIDUsIDUsIDVdKSBpcyB0cnVlCi0KLTQu
MCBFeGNlcHRpb24gVGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcs
ICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIDApIGlz
IHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKGlzQmlnRW5v
dWdoQW5kRXhjZXB0aW9uKScsIFs5LCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNl
cHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24uCi0KLTUuMCBXcm9uZyBUeXBlIGZvciBDYWxs
YmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyg4KScs
IFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
bi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKCJ3cm9uZyIpJywg
WzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlZEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
LgotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcobmV3IE9iamVjdCgp
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKG51bGwpJywg
WzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlZEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
LgotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoKScsIFsxMiwgMTUs
IDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJh
eS5wcm90b3R5cGUuZmluZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktZmluZEluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy90eXBlZGFycmF5LWZpbmRJbmRleC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMWEzYTA3ZTI5NDljMWU0NWJlOGI3OWNhYzkzNjIzZTQyNTdjODMwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVk
YXJyYXktZmluZEluZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy90eXBlZGFycmF5LWZpbmRJbmRleC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWZvckVhY2gtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1mb3JFYWNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzIxNjU1MDE2YmQwYmU3NzkzMjMwZWEyYTlkYmUwOTU1OWIy
ZjA0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy90eXBlZGFycmF5LWZvckVhY2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzQgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5
cGVkQXJyYXkucHJvdG90eXBlLmZvckVhY2ggZnVuY3Rpb24KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgSW50MzJBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5sZW5ndGggaXMg
MQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLm5hbWUgaXMgJ2ZvckVhY2gnCi1Q
QVNTIGlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZvckVhY2gnKSBp
cyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdmb3JFYWNoJywgW3VuZGVm
aW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1ZQotCi0xLjAgU2luZ2xlIEFy
Z3VtZW50IFRlc3RpbmcKLVBBU1MgcGFzc2VkIGlzIHRydWUKLQotMi4wIFR3byBBcmd1bWVudCBU
ZXN0aW5nCi1QQVNTIHBhc3NlZCAmJiB0aGlzUGFzc2VkIGlzIHRydWUKLVBBU1MgcGFzc2VkICYm
ICF0aGlzUGFzc2VkIGlzIHRydWUKLQotMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmcKLVBBU1Mg
cGFzc2VkICYmIGhhc1NhbWVWYWx1ZXMoJ2FycmF5IGRpZCBub3QgbXV0YXRlIGNvcnJlY3RseScs
IHR5cGVkQXJyYXksIFs1LCA1LCA1LCA1LCA1XSkgaXMgdHJ1ZQotCi00LjAgRXhjZXB0aW9uIFRl
c3QKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmb3JFYWNoJywgJyhpc0JpZ0Vub3VnaEFu
ZEV4Y2VwdGlvbiknLCBbOSwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9u
IGV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uLgotCi01LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sg
VGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKDgpJywgWzEyLCAx
NSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFy
cmF5LnByb3RvdHlwZS5maW5kSW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFT
UyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKCJ3cm9uZyIpJywgWzEyLCAxNSwg
MTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5
LnByb3RvdHlwZS5maW5kSW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1
LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJy
YXkucHJvdG90eXBlLmZpbmRJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNT
IHRlc3RQcm90b3R5cGVGdW5jdGlvbignZm9yRWFjaCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJv
dG90eXBlLmZpbmRJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZm9yRWFjaCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBm
YWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmlu
ZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3R5cGVkYXJyYXktZm9yRWFjaC5odG1sIGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1m
b3JFYWNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5Y2ExMzk3ZGNmZjE5
NTRlOWM4OWI3YTY1NTcyNjg3NmM0YjdlYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1mb3JFYWNoLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LWZvckVhY2gu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
dHlwZWRhcnJheS1pbmRleE9mLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJy
YXktaW5kZXhPZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYy
MmU1NWRhMTQyMWMwMjY5NTE3ZGQxYzg0MzdhNDdhMWY3YmMxMmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1p
bmRleE9mLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5pbmRl
eE9mIGZ1bmN0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIEludDMy
QXJyYXkucHJvdG90eXBlLmluZGV4T2YubGVuZ3RoIGlzIDEKLVBBU1MgSW50MzJBcnJheS5wcm90
b3R5cGUuaW5kZXhPZi5uYW1lIGlzICdpbmRleE9mJwotUEFTUyBpc1NhbWVGdW5jdGlvbkZvckVh
Y2hUeXBlZEFycmF5UHJvdG90eXBlKCdpbmRleE9mJykgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90
eXBlUmVjZWl2ZXNBcnJheSgnaW5kZXhPZicsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0
cnVlLCAnJ10pIGlzIHRydWUKLQotdGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93
aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkg
XSkKLQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4T2YnLCAnKDIsIC01MDApJywg
YXJyYXksIDApIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywg
Jyg5LCA1MDApJywgYXJyYXksIC0xKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlv
bignaW5kZXhPZicsICcoMiknLCBhcnJheSwgMCkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2luZGV4T2YnLCAnKDcpJywgYXJyYXksIC0xKSBpcyB0cnVlCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignaW5kZXhPZicsICcoMiwgMyknLCBhcnJheSwgMykgaXMgdHJ1ZQot
UEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4T2YnLCAnKDIsIDIpJywgYXJyYXksIDMp
IGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAwKScs
IGFycmF5LCAwKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignaW5kZXhPZics
ICcoMiwgLTEpJywgYXJyYXksIDMpIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdpbmRleE9mJywgJygyLCAtMiknLCBhcnJheSwgMykgaXMgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvdHlwZWRhcnJheS1pbmRleE9mLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy90eXBlZGFy
cmF5LWluZGV4T2YuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JkYWU5ZTZm
ZmZmY2ZmZTVmZTI2YjVmOGM2Y2Q5NGE2YzMxNTZlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWluZGV4T2Yu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktaW5k
ZXhPZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy90eXBlZGFycmF5LWxhc3RJbmRleE9mLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3R5cGVkYXJyYXktbGFzdEluZGV4T2YtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4ODhlMGZiMzUxYzU0MzNhNDIxYmJjYzgyOTY0YWRkYjY2YTQxZDYxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3R5cGVkYXJyYXktbGFzdEluZGV4T2YtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjcgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJy
YXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGZ1bmN0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmxlbmd0aCBp
cyAxCi1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLm5hbWUgaXMgJ2xhc3RJ
bmRleE9mJwotUEFTUyBpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCds
YXN0SW5kZXhPZicpIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2xh
c3RJbmRleE9mJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1
ZQotCi10ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5h
bWUsIGFyZ3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKQotCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignbGFzdEluZGV4T2YnLCAnKDIsIC01MDApJywgYXJyYXksIC0xKSBp
cyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignbGFzdEluZGV4T2YnLCAnKDksIDUw
MCknLCBhcnJheSwgMikgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2xhc3RJ
bmRleE9mJywgJygyKScsIGFycmF5LCAzKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5j
dGlvbignbGFzdEluZGV4T2YnLCAnKDUpJywgYXJyYXksIDEpIGlzIHRydWUKLVBBU1MgdGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoNyknLCBhcnJheSwgLTEpIGlzIHRydWUK
LVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgMyknLCBhcnJh
eSwgMykgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2xhc3RJbmRleE9mJywg
JygyLCAyKScsIGFycmF5LCAwKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbign
bGFzdEluZGV4T2YnLCAnKDIsIDApJywgYXJyYXksIDApIGlzIHRydWUKLVBBU1MgdGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgLTEpJywgYXJyYXksIDMpIGlzIHRydWUK
LVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgLTIpJywgYXJy
YXksIDApIGlzIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktbGFzdElu
ZGV4T2YuaHRtbCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc0MTdlODIzZTFjZjEwZmZiNzA3MmJhNzcz
NGE5NmFmMzRjNDE3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LWxhc3RJbmRleE9mLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVk
YXJyYXktbWFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktbWFwLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE5ODM5MWMwNTgxODQ2
YTM5ZjVmMTI3MDdiYjJiNDQ2ODczMjU4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LW1hcC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUubWFwIGZ1bmN0aW9uCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLm1hcC5s
ZW5ndGggaXMgMQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlwZS5tYXAubmFtZSBpcyAnbWFwJwot
UEFTUyBpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdtYXAnKSBpcyB0
cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdtYXAnLCBbdW5kZWZpbmVkLCB0
aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSBpcyB0cnVlCi0KLXRlc3RQcm90b3R5cGVGdW5jdGlv
biBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsg
LCBleHBlY3RlZEFycmF5IF0pCi0KLTEuMCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZwotUEFTUyB0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcoZXZlbiknLCBbMTIsIDUsIDgsIDEzLCA0NF0s
IFsxLCAwLCAxLCAwLCAxXSwgWzEyLCA1LCA4LCAxMywgNDRdKSBpcyB0cnVlCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbignbWFwJywgJyhldmVuKScsIFsxMSwgNTQsIDE4LCAxMywgMV0sIFsw
LCAxLCAxLCAwLCAwXSkgaXMgdHJ1ZQotCi0yLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmcKLVBBU1Mg
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAnKGV2ZW4sIHRoaXNWYWx1ZSknLCBbMTIsIDIz
LCAxMSwgMSwgNDVdLCBbMSwgMSwgMCwgMSwgMF0pIGlzIHRydWUKLQotMy4wIEFycmF5IEVsZW1l
bnQgQ2hhbmdpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAnKGV2ZW5BbmRD
aGFuZ2UpJywgWzEyLCAxNSwgMiwgMTMsIDQ0XSwgWzEsIDAsIDEsIDAsIDBdLCBbNSwgNSwgNSwg
NSwgNV0pIGlzIHRydWUKLQotNC4wIEV4Y2VwdGlvbiBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVG
dW5jdGlvbignbWFwJywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBleGNlcHRpb24gZnJvbSBmdW5jdGlvbi4K
LQotNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QKLVBBU1MgdGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdtYXAnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5tYXAgY2FsbGJhY2sgbXVz
dCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcoIndy
b25nIiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rp
b24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignbWFwJywgJyhuZXcgT2JqZWN0KCkpJywg
WzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlZEFycmF5LnByb3RvdHlwZS5tYXAgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFT
UyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMs
IDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90
eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQcm90b3R5cGVG
dW5jdGlvbignbWFwJywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5tYXAgY2FsbGJhY2sgbXVz
dCBiZSBhIGZ1bmN0aW9uLgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1tYXAu
aHRtbCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktbWFwLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE4OTNmYmRkZmRhN2YwZmJlOTdlODk0YzNjMjI3OWEwNmRlYTNlYTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvanMvdHlwZWRhcnJheS1tYXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3R5cGVkYXJyYXktbWFwLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktcmVkdWNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3R5cGVkYXJyYXktcmVkdWNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjZjZmY4NGMxMTBhMTBkNmVlNDZjZTc5ZmQ5Y2E2OTJjNWQ4Zjc3
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy90eXBlZGFycmF5LXJlZHVjZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzNiArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRB
cnJheS5wcm90b3R5cGUucmVkdWNlIGZ1bmN0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLnJlZHVjZS5sZW5ndGggaXMgMQotUEFT
UyBJbnQzMkFycmF5LnByb3RvdHlwZS5yZWR1Y2UubmFtZSBpcyAncmVkdWNlJwotUEFTUyBpc1Nh
bWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdyZWR1Y2UnKSBpcyB0cnVlCi1Q
QVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdyZWR1Y2UnLCBbdW5kZWZpbmVkLCB0aGlz
LCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSBpcyB0cnVlCi0KLXRlc3RQcm90b3R5cGVGdW5jdGlvbiBo
YXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBl
eHBlY3RlZEFycmF5IF0pCi0KLTEuMCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZwotUEFTUyB0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoY3JlYXRlQXJyYXkpJywgWzEyLCA1LCA4LCAx
MywgNDRdLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFsxMiwgNSwgOCwgMTMsIDQ0XSkgaXMgdHJ1ZQot
UEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoc3VtKScsIFsxLCAyLCAzLCA0
LCA1XSwgMTUpIGlzIHRydWUKLQotMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nCi1QQVNTIHRlc3RQ
cm90b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhjcmVhdGVBcnJheSwgWzFdKScsIFsxMiwgMjMs
IDExLCAxLCA0NV0sIFsxLCAxMiwgMjMsIDExLCAxLCA0NV0sIFsxMiwgMjMsIDExLCAxLCA0NV0p
IGlzIHRydWUKLQotMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmcKLVBBU1MgdGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKGNyZWF0ZUFycmF5QW5kQ2hhbmdlLCBbXSknLCBbMTIsIDE1
LCAyLCAxMywgNDRdLCBbMTIsIDE1LCAyLCA1LCA1XSwgWzUsIDUsIDUsIDUsIDVdKSBpcyB0cnVl
Ci0KLTQuMCBFeGNlcHRpb24gVGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVj
ZScsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSB0aHJldyBleGNlcHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24uCi0KLTUuMCBXcm9u
ZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVk
dWNlJywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlIGNhbGxiYWNrIG11c3QgYmUg
YSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKCJ3cm9u
ZyIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0
aW9uLgotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcobmV3IE9iamVjdCgp
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
bi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKG51bGwpJywgWzEyLCAx
NSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFy
cmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRd
LCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUu
cmVkdWNlIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3R5cGVkYXJyYXktcmVkdWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LXJl
ZHVjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTBkM2U5NmMxN2IwMTQw
OGFiZmNlMzRhMjgzOGFkZmVhMTA4YzhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktcmVkdWNlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LXJlZHVjZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy90eXBl
ZGFycmF5LXJlZHVjZVJpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3R5cGVkYXJy
YXktcmVkdWNlUmlnaHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3OTcwNjU5MDA0YzJhZjA1M2Y2ZmJmYmRjMmJhNTg3MjgyYTlkNzI3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJy
YXktcmVkdWNlUmlnaHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBA
QAotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLnJlZHVjZVJpZ2h0IGZ1bmN0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIEludDMyQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0Lmxlbmd0aCBpcyAxCi1QQVNT
IEludDMyQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0Lm5hbWUgaXMgJ3JlZHVjZVJpZ2h0Jwot
UEFTUyBpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdyZWR1Y2VSaWdo
dCcpIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ3JlZHVjZVJpZ2h0
JywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1ZQotCi10ZXN0
UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3Ms
IGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKQotCi0xLjAgU2luZ2xlIEFyZ3VtZW50
IFRlc3RpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoY3Jl
YXRlQXJyYXkpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbMTIsIDUsIDgsIDEzLCA0NF0ucmV2ZXJz
ZSgpLCBbMTIsIDUsIDgsIDEzLCA0NF0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdyZWR1Y2VSaWdodCcsICcoc3VtKScsIFsxLCAyLCAzLCA0LCA1XSwgMTUpIGlzIHRydWUK
LQotMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbign
cmVkdWNlUmlnaHQnLCAnKGNyZWF0ZUFycmF5LCBbMV0pJywgWzEyLCAyMywgMTEsIDEsIDQ1XSwg
WzEsIDQ1LCAxLCAxMSwgMjMsIDEyXSwgWzEyLCAyMywgMTEsIDEsIDQ1XSkgaXMgdHJ1ZQotCi0z
LjAgQXJyYXkgRWxlbWVudCBDaGFuZ2luZwotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3Jl
ZHVjZVJpZ2h0JywgJyhjcmVhdGVBcnJheUFuZENoYW5nZSwgW10pJywgWzEyLCAxNSwgMiwgMTMs
IDQ0XSwgWzQ0LCAxMywgMiwgNSwgNV0sIFs1LCA1LCA1LCA1LCA1XSkgaXMgdHJ1ZQotCi00LjAg
RXhjZXB0aW9uIFRlc3QKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcs
ICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNl
KSB0aHJldyBleGNlcHRpb24gZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24uCi0KLTUuMCBXcm9uZyBU
eXBlIGZvciBDYWxsYmFjayBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNl
UmlnaHQnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBjYWxsYmFjayBt
dXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlUmln
aHQnLCAnKCJ3cm9uZyIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBjYWxsYmFj
ayBtdXN0IGJlIGEgZnVuY3Rpb24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNl
UmlnaHQnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0
IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdyZWR1Y2VSaWdodCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0
IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdyZWR1Y2VSaWdodCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgY2Fs
bGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRh
cnJheS1yZWR1Y2VSaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1yZWR1Y2VS
aWdodC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2U3OTMzN2RmNDJkOTAx
ZjIyNzZiYjQ4YjFhZDFhMWIyYjg5NjdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktcmVkdWNl
UmlnaHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvdHlwZWRhcnJheS1zbGljZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy90eXBl
ZGFycmF5LXNsaWNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Yjk3MWMwM2FmNzVmYzU2ZTU1YTA0NGZlODcwODdkYTcwMDc1YjVmMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5
LXNsaWNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5zbGlj
ZSBmdW5jdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBJbnQzMkFy
cmF5LnByb3RvdHlwZS5zbGljZS5sZW5ndGggaXMgMgotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlw
ZS5zbGljZS5uYW1lIGlzICdzbGljZScKLVBBU1MgaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRB
cnJheVByb3RvdHlwZSgnc2xpY2UnKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZl
c0FycmF5KCdzbGljZScsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIGlz
IHRydWUKLQotdGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0
IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkKLQotMS4wIFRl
c3QgQmFzaWMgRnVuY3Rpb25hbGl0eQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NsaWNl
JywgJygyLCAzKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgWzhdLCBbMTIsIDUsIDgsIDEzLCA0NF0p
IGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzbGljZScsICcoNSwgNSknLCBb
MTIsIDUsIDgsIDEzLCA0NF0sIFtdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlv
bignc2xpY2UnLCAnKDAsIDUpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbMTIsIDUsIDgsIDEzLCA0
NF0pIGlzIHRydWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzbGljZScsICcoMCwgLTUp
JywgWzEyLCA1LCA4LCAxMywgNDRdLCBbXSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ3NsaWNlJywgJygtMywgLTIpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbOF0pIGlzIHRy
dWUKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzbGljZScsICcoNCwgMiknLCBbMTIsIDUs
IDgsIDEzLCA0NF0sIFtdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignc2xp
Y2UnLCAnKC01MCwgNTApJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbMTIsIDUsIDgsIDEzLCA0NF0p
IGlzIHRydWUKLQotMi4wIFByZXNlcnZlIFVuZGVybHlpbmcgYml0cwotUEFTUyBpbnRWaWV3WzBd
IGlzIC0xCi0KLTMuMCBDcmVhdGVzIE5ldyBCdWZmZXIKLVBBU1MgaW50Vmlld1swXSBpcyAwCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LXNsaWNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy90eXBlZGFycmF5LXNsaWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhlMDY2NDM4NGNmMTE0ZTk1NWI2YWI2YzExZmIwMWI4NTNkMTJjZWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJh
eS1zbGljZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRh
cnJheS1zbGljZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy90eXBlZGFycmF5LXNvbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
dHlwZWRhcnJheS1zb21lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDkyOGFiMDZmZjMxNTY0OTYzNzk3ZjIxZDhhOWYwYjM5OGM5NTVlOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy90eXBlZGFy
cmF5LXNvbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotVGhp
cyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNv
bWUgZnVuY3Rpb24KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgSW50MzJB
cnJheS5wcm90b3R5cGUuc29tZS5sZW5ndGggaXMgMQotUEFTUyBJbnQzMkFycmF5LnByb3RvdHlw
ZS5zb21lLm5hbWUgaXMgJ3NvbWUnCi1QQVNTIGlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJy
YXlQcm90b3R5cGUoJ3NvbWUnKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVSZWNlaXZlc0Fy
cmF5KCdzb21lJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkgaXMgdHJ1
ZQotCi10ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5h
bWUsIGFyZ3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKQotCi0xLjAgU2luZ2xl
IEFyZ3VtZW50IFRlc3RpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywgJyhp
c0JpZ0Vub3VnaCknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIHRydWUsIFsxMiwgNSwgOCwgMTMsIDQ0
XSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5v
dWdoKScsIFsyLCA0LCA4LCAzLCA0XSwgZmFsc2UpIGlzIHRydWUKLQotMi4wIFR3byBBcmd1bWVu
dCBUZXN0aW5nCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91
Z2gsIHRoaXNWYWx1ZSknLCBbMiwgNSwgMTAsIDMsIDRdLCBmYWxzZSkgaXMgdHJ1ZQotUEFTUyB0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoLCB0aGlzVmFsdWUpJywg
WzEyLCA1NCwgODIsIDEzLCA0NF0sIHRydWUpIGlzIHRydWUKLQotMy4wIEFycmF5IEVsZW1lbnQg
Q2hhbmdpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywgJyhpc0JpZ0Vub3Vn
aEFuZENoYW5nZSknLCBbMiwgNSwgMSwgMTMsIDQ0XSwgZmFsc2UsIFs1LCA1LCA1LCA1LCA1XSkg
aXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdo
QW5kQ2hhbmdlKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCB0cnVlLCBbMTIsIDE1LCAxMCwgMTMs
IDVdKSBpcyB0cnVlCi0KLTQuMCBFeGNlcHRpb24gVGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAx
MywgNDRdLCB0cnVlKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScs
ICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2Up
IHRocmV3IGV4Y2VwdGlvbiBleGNlcHRpb24gZnJvbSBmdW5jdGlvbi4KLQotNS4wIFdyb25nIFR5
cGUgZm9yIENhbGxiYWNrIFRlc3QKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywg
Jyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuc29tZSBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rp
b24uCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScsICcoIndyb25nIiknLCBbMTIs
IDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVk
QXJyYXkucHJvdG90eXBlLnNvbWUgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGVkQXJyYXku
cHJvdG90eXBlLnNvbWUgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgotUEFTUyB0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5zb21l
IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdzb21lJywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5zb21lIGNhbGxiYWNrIG11c3QgYmUg
YSBmdW5jdGlvbi4KLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJyYXktc29tZS5odG1s
IGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1zb21lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBhMzlkM2U4NDBjMTM4Mjk3NTNmMGVmZjU3ZThjMDBkYzkyMDJmMzMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvdHlwZWRhcnJheS1zb21lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy90eXBlZGFycmF5LXNvbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1zb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL3R5cGVkYXJyYXktc29ydC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM1YmMxYzU0Zjg4M2I2ZGU4MzY4NjMzYmRiMzdhMjg0ZWQ0N2UyNjIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvdHlwZWRhcnJheS1zb3J0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQwICsw
LDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnBy
b3RvdHlwZS5zb3J0IGZ1bmN0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIEludDMyQXJyYXkucHJvdG90eXBlLnNvcnQubGVuZ3RoIGlzIDEKLVBBU1MgSW50MzJBcnJh
eS5wcm90b3R5cGUuc29ydC5uYW1lIGlzICdzb3J0JwotUEFTUyBpc1NhbWVGdW5jdGlvbkZvckVh
Y2hUeXBlZEFycmF5UHJvdG90eXBlKCdzb3J0JykgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBl
UmVjZWl2ZXNBcnJheSgnc29ydCcsIFt1bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAn
J10pIGlzIHRydWUKLQotdGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFy
ZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkKLQot
MS4wIE5vIEFyZ3VtZW50IFRlc3RpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0
JywgJygpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbNSwgOCwgMTIsIDEzLCA0NF0sIFs1LCA4LCAx
MiwgMTMsIDQ0XSkgaXMgdHJ1ZQotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvcnQnLCAn
KCknLCBbMiwgNCwgOCwgMywgNF0sIFsyLCAzLCA0LCA0LCA4XSkgaXMgdHJ1ZQotCi0xLjEgU2ln
bmVkIE51bWJlcnMKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uT25TaWduZWQoJ3NvcnQnLCAn
KCknLCBbMTIsIC01LCA4LCAtMTMsIDQ0XSwgWy0xMywgLTUsIDgsIDEyLCA0NF0pIGlzIHRydWUK
LQotMS4yIEZsb2F0IE51bWJlcnMKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uT25GbG9hdCgn
c29ydCcsICcoKScsIFsxMiwgLTUsIDAsIC0wLCAtMTMsIDQ0XSwgWy0xMywgLTUsIC0wLCAwLCAx
MiwgNDRdKSBpcyB0cnVlCi0xLjMgTmVnYXRpdmUgTmFOcwotUEFTUyBPYmplY3QuaXMoZmxvYXRW
aWV3WzBdLDApICYmIE9iamVjdC5pcyhmbG9hdFZpZXdbMV0sIE5hTikgaXMgdHJ1ZQotCi0yLjAg
Q3VzdG9tIEZ1bmN0aW9uIFRlc3RpbmcKLVBBU1MgdGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0
JywgJyhzb3J0QmFja3dhcmRzKScsIFsyLCA1LCAxMCwgMywgNF0sIFsxMCwgNSwgNCwgMywgMl0p
IGlzIHRydWUKLQotMy4wIEV4Y2VwdGlvbiBUZXN0Ci1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlv
bignc29ydCcsICcoY29tcGFyZUV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIGV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uLgotCi00LjAgV3Jvbmcg
VHlwZSBmb3IgQ2FsbGJhY2sgVGVzdAotUEFTUyB0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvcnQn
LCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIFsxMCwgMTIsIDEzLCAxNSwgNDRdKSBpcyB0
cnVlCi1QQVNTIHRlc3RQcm90b3R5cGVGdW5jdGlvbignc29ydCcsICcoIndyb25nIiknLCBbMTIs
IDE1LCAxMCwgMTMsIDQ0XSwgWzEwLCAxMiwgMTMsIDE1LCA0NF0pIGlzIHRydWUKLVBBU1MgdGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAs
IDEzLCA0NF0sIFsxMCwgMTIsIDEzLCAxNSwgNDRdKSBpcyB0cnVlCi1QQVNTIHRlc3RQcm90b3R5
cGVGdW5jdGlvbignc29ydCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgWzEwLCAx
MiwgMTMsIDE1LCA0NF0pIGlzIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3R5cGVkYXJy
YXktc29ydC5odG1sIGIvTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1zb3J0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYWJkYWIzYzcxOGFhNGM0Y2M1ZDgzMWIwOGY5YTJl
NmQwNTlmYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1zb3J0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
dHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy90eXBlZGFycmF5LXNvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>