<?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>227732</bug_id>
          
          <creation_ts>2021-07-06 20:09:28 -0700</creation_ts>
          <short_desc>REGRESSION(r279546): Speedometer/jQuery-TodoMVC 2-3% regression</short_desc>
          <delta_ts>2021-07-06 20:13:17 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227275</blocked>
    
    <blocked>227668</blocked>
    
    <blocked>227672</blocked>
    
    <blocked>227673</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775174</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-07-06 20:09:28 -0700</bug_when>
    <thetext>https://commits.webkit.org/r279546 introduced a regression:
Speedometer/jQuery-TodoMVC 2-3% regression

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>1775179</commentid>
    <comment_count>1</comment_count>
      <attachid>433000</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-07-06 20:10:07 -0700</bug_when>
    <thetext>Created attachment 433000
REVERT of r279546

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>1775182</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-06 20:12:15 -0700</bug_when>
    <thetext>Committed r279635 (239449@main): &lt;https://commits.webkit.org/239449@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775183</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-06 20:13:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80245117&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433000</attachid>
            <date>2021-07-06 20:10:07 -0700</date>
            <delta_ts>2021-07-06 20:12:16 -0700</delta_ts>
            <desc>REVERT of r279546</desc>
            <filename>bug-227732-20210706201007.patch</filename>
            <type>text/plain</type>
            <size>855064</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjU2NDU1OTY3NDRmYzMyYTAxN2I5ODMzM2ExZWMzNjIxYTUzNGJkLi5hNzBiODUyNmNmMTdkOWRj
NDgyMGVkZTc0Mjg3YmE4NzQ0MDYwMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wNy0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzk1NDYsIHIyNzk1NTQs
IHIyNzk1NTggYW5kIHIyNzk1NjcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc3MzIKKworICAgICAgICBTcGVlZG9tZXRlci9qUXVlcnktVG9kb01W
QyAyLTMlIHJlZ3Jlc3Npb24KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAg
ICAgICJbV2ViSURMXSBSZXdvcmsgcnVudGltZSBlbmFibGVkIHByb3BlcnRpZXMgbGV2ZXJhZ2lu
ZworICAgICAgICBQcm9wZXJ0eUNhbGxiYWNrIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Mjc1CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJr
aXQub3JnL3IyNzk1NDYKKworICAgICAgICAiW1dlYklETF0gR2VuZXJhdGUgY29uc3RydWN0b3In
cyBoYXNoIHRhYmxlIGluCisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2Rz
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjY4
CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NTQKKworICAgICAgICAi
W1dlYklETF0gU2ltcGxpZnkgZ2VuZXJhdGlvbiBvZiBydW50aW1lIGNvbmRpdGlvbmFsbHkgcmVh
ZC0KKyAgICAgICAgd3JpdGUgYXR0cmlidXRlcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzY3MgorICAgICAgICBodHRwczovL2NvbW1pdHMud2Vi
a2l0Lm9yZy9yMjc5NTU4CisKKyAgICAgICAgIlVzZSBBYm9ydFNpZ25hbCdzIFtQcml2YXRlSWRl
bnRpZmllcl0gd2hlblNpZ25hbEFib3J0ZWQoKQorICAgICAgICBzdGF0aWMgbWV0aG9kIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjczCisgICAg
ICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NjcKKwogMjAyMS0wNy0wNiAgUGhp
bGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10gSW1w
bGVtZW50IFRlbXBvcmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUwZWY1YjBlZDQzY2U1MzRmMTJhMTM1YTkx
MDNlMzdjODlmYzExZi4uZWRjZDFjYzZiNzZkNTRlMWExNjIwZTQ3NmMyMWJkN2Y0MzM3NDExYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA3LTA2ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI3OTU0NiwgcjI3OTU1NCwgcjI3OTU1OCBhbmQgcjI3OTU2Ny4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzczMgorCisgICAgICAgIFNwZWVkb21l
dGVyL2pRdWVyeS1Ub2RvTVZDIDItMyUgcmVncmVzc2lvbgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldHM6CisKKyAgICAgICAgIltXZWJJRExdIFJld29yayBydW50aW1lIGVuYWJsZWQgcHJv
cGVydGllcyBsZXZlcmFnaW5nCisgICAgICAgIFByb3BlcnR5Q2FsbGJhY2siCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNzUKKyAgICAgICAgaHR0
cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU0NgorCisgICAgICAgICJbV2ViSURMXSBHZW5l
cmF0ZSBjb25zdHJ1Y3RvcidzIGhhc2ggdGFibGUgaW4KKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1
Y3RvckhlbHBlck1ldGhvZHMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjc2NjgKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3
OTU1NAorCisgICAgICAgICJbV2ViSURMXSBTaW1wbGlmeSBnZW5lcmF0aW9uIG9mIHJ1bnRpbWUg
Y29uZGl0aW9uYWxseSByZWFkLQorICAgICAgICB3cml0ZSBhdHRyaWJ1dGVzIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjcyCisgICAgICAgIGh0
dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NTgKKworICAgICAgICAiVXNlIEFib3J0U2ln
bmFsJ3MgW1ByaXZhdGVJZGVudGlmaWVyXSB3aGVuU2lnbmFsQWJvcnRlZCgpCisgICAgICAgIHN0
YXRpYyBtZXRob2QiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc2NzMKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU2Nwor
CiAyMDIxLTA3LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3Jl
ZGVudGlhbHMvYXV0aGVudGljYXRpb24tYmFzaWMuYW55Ki5odG1sIGFyZSBjcmFzaGluZyBpbiBk
ZWJ1ZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggMjQ0N2U5MjQwMDJm
ZThlMTFmOThhYTUyNTI4Y2I0NDJhYTVjYjcxNC4uMzdhODBiMjk1NzcyMTBmMzVlMDZkODFiYTEz
NDVmNjk3ODAwOTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC0z
MTksNyArMzE5LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKgogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoc2xvdC5pc1Vuc2V0KCkgfHwgc2xvdC5zbG90QmFzZSgpICE9IGJhc2VW
YWx1ZSkgewotICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGli
aXRzUHJvcGVydHlDYWNoaW5nKCkgfHwgc2xvdC5pc1RhaW50ZWRCeU9wYXF1ZU9iamVjdCgpKQor
ICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVy
dHlDYWNoaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwog
CiAgICAgICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGU0OTFj
OTM5YmFjZDlkNTk0ZTQ1YThiNjJjODVhYmQ0ZGIyNWNkMjMuLjU2MTU3NDQyMzYxNjIyNzNkY2Vl
MGY1MDgxNDMzMjAyZmI3NzQ5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIHN0YXRpYyB2b2lkIHNldHVw
R2V0QnlJZFByb3RvdHlwZUNhY2hlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2
bSwgQ29kCiB7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJl
KHZtKTsKIAotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlD
YWNoaW5nKCkgfHwgc2xvdC5pc1RhaW50ZWRCeU9wYXF1ZU9iamVjdCgpKQorICAgIGlmIChzdHJ1
Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBpZiAoc3RydWN0dXJlLT5uZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBv
aW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Q
cm9wZXJ0eUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9w
ZXJ0eUNhY2hlLmgKaW5kZXggNjNlYmViMGUwNDZiNDgzZDkzN2M1NGJhNDBhMTFiYmYxM2U1OTc0
Yi4uMjA1ZTFhOTM5NDNiMzVhYWQxYmZmNTI5MDkyZGUzMTNhY2UwNTgwZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaApAQCAt
OTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7Ci0gICAgICAgIGlmICgh
KHN0cnVjdHVyZS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSB8fCBzbG90
LmlzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0KCkpCisgICAgICAgIGlmICghc3RydWN0dXJlLT50eXBl
SW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpCiAgICAgICAgICAgICAmJiBzdHJ1Y3R1
cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKQogICAgICAgICAgICAgJiYgKCFzbG90
LmlzVW5zZXQoKSB8fCBzdHJ1Y3R1cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGVGb3JB
YnNlbmNlKCkpKSB7CiAgICAgICAgICAgICBpZiAoc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDlhNzg1
NGEyNmQxODRlNDMwMDc3M2ExODUzYzIwODIwNTYyNTViOTIuLmUwYWEwZjNhZTM5OTZhMmYyMzk2
MTU0NmMwMzhmMzRlZDdlNGE0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKQEAgLTc2MCw1NiArNzYwLDYgQEAgYm9vbCBKU09iamVjdDo6cHV0KEpTQ2Vs
bCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3AK
ICAgICByZXR1cm4gcHV0SW5saW5lRm9ySlNPYmplY3QoY2VsbCwgZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAotc3RydWN0IFByb3BlcnR5Rm9yUHV0IHsKLSAg
ICBjb25zdCB1bnNpZ25lZCBhdHRyaWJ1dGVzOwotICAgIGNvbnN0IFByb3BlcnR5T2Zmc2V0IG9m
ZnNldDsKLSAgICBjb25zdCBQdXRWYWx1ZUZ1bmMgY3VzdG9tU2V0dGVyOwotfTsKLQotc3RhdGlj
IEFMV0FZU19JTkxJTkUgc3RkOjpvcHRpb25hbDxQcm9wZXJ0eUZvclB1dD4gbG9va3VwUHJvcGVy
dHlGb3JQdXQoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAg
IFB1dFZhbHVlRnVuYyBjdXN0b21TZXR0ZXIgPSBudWxscHRyOwotICAgIGF1dG8gZ2V0RnJvbVN0
cnVjdHVyZSA9IFsmXSAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIC0+IHN0ZDo6b3B0aW9uYWw8UHJv
cGVydHlGb3JQdXQ+IHsKLSAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKLSAgICAgICAgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0ID0gc3RydWN0dXJlLT5nZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0
cmlidXRlcyk7Ci0gICAgICAgIGlmICghaXNWYWxpZE9mZnNldChvZmZzZXQpKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKQotICAgICAgICAgICAgY3VzdG9tU2V0
dGVyID0ganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KG9iamVjdC0+Z2V0RGlyZWN0KG9mZnNl
dCkpLT5zZXR0ZXIoKTsKLSAgICAgICAgcmV0dXJuIFByb3BlcnR5Rm9yUHV0IHsgYXR0cmlidXRl
cywgb2Zmc2V0LCBjdXN0b21TZXR0ZXIgfTsKLSAgICB9OwotCi0gICAgaWYgKGF1dG8gcHJvcGVy
dHkgPSBnZXRGcm9tU3RydWN0dXJlKHN0cnVjdHVyZSkpCi0gICAgICAgIHJldHVybiBwcm9wZXJ0
eTsKLQotICAgIGlmIChzdHJ1Y3R1cmUtPmhhc05vblJlaWZpZWRTdGF0aWNQcm9wZXJ0aWVzKCkp
IHsKLSAgICAgICAgaWYgKGF1dG8gZW50cnkgPSBzdHJ1Y3R1cmUtPmZpbmRQcm9wZXJ0eUhhc2hF
bnRyeShwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0g
ZW50cnktPnZhbHVlLT5hdHRyaWJ1dGVzKCk7Ci0KLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVz
ICYgUHJvcGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spIHsKLSAgICAgICAgICAgICAg
ICBzbG90LmRpc2FibGVDYWNoaW5nKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFlbnRyeS0+dmFs
dWUtPmlzTGF6eVByb3BlcnR5RW5hYmxlZChvYmplY3QtPmdsb2JhbE9iamVjdCh2bSkpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICAgICAgICAgIHJl
aWZ5U3RhdGljUHJvcGVydHkodm0sIGVudHJ5LT50YWJsZS0+Y2xhc3NGb3JUaGlzLCBwcm9wZXJ0
eU5hbWUsICplbnRyeS0+dmFsdWUsICpvYmplY3QpOwotICAgICAgICAgICAgICAgIHJldHVybiBn
ZXRGcm9tU3RydWN0dXJlKG9iamVjdC0+c3RydWN0dXJlKHZtKSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIC8vIEZJWE1FOiBjcmVhdGVfaGFzaF90YWJsZSBzaG91bGQgc2V0IFJlYWRP
bmx5IGF0dHJpYnV0ZSBmb3Igc2V0dGVyLWxlc3MgYWNjZXNzb3JzLgotICAgICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk5NwotICAgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpCi0gICAgICAg
ICAgICAgICAgYXR0cmlidXRlcyB8PSBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7Ci0gICAg
ICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYWZ0ZXIgd2Ugc3RvcCBkZWZhdWx0aW5nIHRv
IEN1c3RvbVZhbHVlIGluIHN0YXRpYyBoYXNoIHRhYmxlcy4KLSAgICAgICAgICAgIGlmICghKGF0
dHJpYnV0ZXMgJiAoUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OkJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JDb25z
dGFudCkpKQotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgfD0gUHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbVZhbHVlOwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3JPclZhbHVlKQotICAgICAgICAgICAgICAgIGN1c3RvbVNldHRl
ciA9IGVudHJ5LT52YWx1ZS0+cHJvcGVydHlQdXR0ZXIoKTsKLSAgICAgICAgICAgIHJldHVybiBQ
cm9wZXJ0eUZvclB1dCB7IGF0dHJpYnV0ZXMsIGludmFsaWRPZmZzZXQsIGN1c3RvbVNldHRlciB9
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQogYm9v
bCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgQVNTRVJUKCFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpOwpAQCAtODI4
LDEyICs3NzgsMzUgQEAgYm9vbCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHkKICAgICAgICAgaWYgKG9iaiAh
PSB0aGlzICYmIHN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNQdXQoKSkKICAgICAgICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgb2JqLT5tZXRob2RUYWJsZSh2bSktPnB1dChv
YmosIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOwogCi0gICAgICAg
IGlmIChhdXRvIHByb3BlcnR5ID0gbG9va3VwUHJvcGVydHlGb3JQdXQodm0sIG9iaiwgc3RydWN0
dXJlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1
dGVzID0gcHJvcGVydHktPmF0dHJpYnV0ZXM7CisgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBm
YWxzZTsKKyAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKKyAgICAgICAgUHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmMgY3VzdG9tU2V0dGVyID0gbnVsbHB0cjsKKyAgICAgICAgUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0ID0gc3RydWN0dXJlLT5nZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmli
dXRlcyk7CisgICAgICAgIGlmIChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAgICAgICAgICAg
IGhhc1Byb3BlcnR5ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yT3JWYWx1ZSkKKyAgICAgICAgICAgICAgICBjdXN0
b21TZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4ob2JqLT5nZXREaXJlY3Qob2Zm
c2V0KSktPnNldHRlcigpOworICAgICAgICB9IGVsc2UgaWYgKHN0cnVjdHVyZS0+aGFzTm9uUmVp
ZmllZFN0YXRpY1Byb3BlcnRpZXMoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gZW50cnkgPSBz
dHJ1Y3R1cmUtPmZpbmRQcm9wZXJ0eUhhc2hFbnRyeShwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAg
ICAgICAgICAgaGFzUHJvcGVydHkgPSB0cnVlOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMg
PSBlbnRyeS0+dmFsdWUtPmF0dHJpYnV0ZXMoKTsKKworICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBhZnRlciB3cml0YWJsZSBhY2Nlc3NvcnMgYXJlIGludHJvZHVjZWQgdG8g
c3RhdGljIGhhc2ggdGFibGVzLgorICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzICYgUHJv
cGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKQorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVz
IHw9IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgYWZ0ZXIgd2Ugc3RvcCBkZWZhdWx0aW5nIHRvIEN1c3RvbVZhbHVlIGlu
IHN0YXRpYyBoYXNoIHRhYmxlcy4KKyAgICAgICAgICAgICAgICBpZiAoIShhdHRyaWJ1dGVzICYg
KFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpC
dWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29uc3RhbnQpKSkKKyAg
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyB8PSBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
VmFsdWU7CisKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3Nvck9yVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGN1c3RvbVNl
dHRlciA9IGVudHJ5LT52YWx1ZS0+cHJvcGVydHlQdXR0ZXIoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChoYXNQcm9wZXJ0eSkgewogICAgICAgICAgICAgaWYgKGF0
dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9kZSgp
LCBSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgICAgICAgICBpZiAoYXR0cmlidXRl
cyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvcikgewotICAgICAgICAgICAgICAgIFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCA9IHByb3BlcnR5LT5vZmZzZXQ7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKGlzVmFsaWRPZmZzZXQob2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBtYWtlIHN1cmUgdGhhdCB3ZSBkZWNpZGUgdG8gY2FjaGUgdGhpcyBwcm9wZXJ0eSBiZWZvcmUg
d2UgcG90ZW50aWFsbHkgZXhlY3V0ZSBhcmliaXRyYXJ5IEpTLgogICAgICAgICAgICAgICAgIGlm
ICghdGhpcy0+c3RydWN0dXJlKHZtKS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkKQEAgLTg0
MSw3ICs4MTQsOSBAQCBib29sIEpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eQogICAgICAgICAgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNDYXN0PEdldHRlclNldHRlcio+KG9iai0+Z2V0RGly
ZWN0KG9mZnNldCkpLT5jYWxsU2V0dGVyKGdsb2JhbE9iamVjdCwgc2xvdC50aGlzVmFsdWUoKSwg
dmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSB7Ci0g
ICAgICAgICAgICAgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlciA9IHByb3BlcnR5LT5jdXN0
b21TZXR0ZXI7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFmdGVyIFdl
YklETCBnZW5lcmF0b3IgaXMgZml4ZWQgdG8gc2V0IFJlYWRPbmx5IGZvciBbUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVdIGF0dHJpYnV0ZXMuCisgICAgICAgICAgICAgICAgaWYgKCFjdXN0
b21TZXR0ZXIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
ICAgICBBU1NFUlQoY3VzdG9tU2V0dGVyKTsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIG9ubHkgYmUgY2FjaGluZyB0aGVzZSBpZiB3ZSdyZSBub3QgYW4gdW5jYWNoZWFibGUg
ZGljdGlvbmFyeToKICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE1MzQ3CkBAIC04NTEsNyArODI2LDYgQEAgYm9vbCBKU09iamVjdDo6
cHV0SW5saW5lU2xvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGlmIChhdHRyaWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbVZhbHVl
KSB7Ci0gICAgICAgICAgICAgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlciA9IHByb3BlcnR5
LT5jdXN0b21TZXR0ZXI7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE9uY2UgbGVnYWN5IFJl
Z0V4cCBmZWF0dXJlcyBhcmUgaW1wbGVtZW50ZWQsIHRoZXJlIHdvdWxkIGJlIG5vIHVzZSBjYXNl
IGZvciBjYWxsaW5nIEN1c3RvbVZhbHVlIHNldHRlciBpZiByZWNlaXZlciBpcyBhbHRlcmVkLgog
ICAgICAgICAgICAgICAgIGlmIChjdXN0b21TZXR0ZXIgJiYgIShpc1RoaXNWYWx1ZUFsdGVyZWQo
c2xvdCwgb2JqKSAmJiBzbG90LmNvbnRleHQoKSA9PSBQdXRQcm9wZXJ0eVNsb3Q6OlJlZmxlY3RT
ZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgb25seSBiZSBj
YWNoaW5nIHRoZXNlIGlmIHdlJ3JlIG5vdCBhbiB1bmNhY2hlYWJsZSBkaWN0aW9uYXJ5OgpAQCAt
MjY1NCwxNiArMjYyOCwxMiBAQCB2b2lkIEpTT2JqZWN0OjpyZWlmeUFsbFN0YXRpY1Byb3BlcnRp
ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBpZiAoIXN0cnVjdHVyZSh2bSkt
PmlzRGljdGlvbmFyeSgpKQogICAgICAgICBzZXRTdHJ1Y3R1cmUodm0sIFN0cnVjdHVyZTo6dG9D
YWNoZWFibGVEaWN0aW9uYXJ5VHJhbnNpdGlvbih2bSwgc3RydWN0dXJlKHZtKSkpOwogCi0gICAg
SlNHbG9iYWxPYmplY3QqIHRoaXNHbG9iYWxPYmplY3QgPSB0aGlzLT5nbG9iYWxPYmplY3Qodm0p
OwotCiAgICAgZm9yIChjb25zdCBDbGFzc0luZm8qIGluZm8gPSBjbGFzc0luZm8odm0pOyBpbmZv
OyBpbmZvID0gaW5mby0+cGFyZW50Q2xhc3MpIHsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBo
YXNoVGFibGUgPSBpbmZvLT5zdGF0aWNQcm9wSGFzaFRhYmxlOwogICAgICAgICBpZiAoIWhhc2hU
YWJsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUg
OiAqaGFzaFRhYmxlKSB7Ci0gICAgICAgICAgICBpZiAoKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIFBy
b3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSAmJiAhdmFsdWUuaXNMYXp5UHJvcGVy
dHlFbmFibGVkKHRoaXNHbG9iYWxPYmplY3QpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKICAgICAgICAgICAgIGF1dG8ga2V5ID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgdmFsdWUubV9rZXkpOwogICAgICAgICAgICAgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0ID0gZ2V0RGlyZWN0T2Zmc2V0KHZtLCBrZXksIGF0dHJpYnV0ZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNDhlNzdmYjk2
YjNmMWZkMjMzNDEzOTMzZTY0Y2IyZWQwMWIzYmQxYi4uYTY0NzVlNmI5M2EyNTU5N2RlMmFmZmVk
OTM2NzQ1NGU5NmY0NTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCkBAIC0xNzEsNyArMTcxLDYgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCosIEpTR2xvYmFs
T2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29s
IGdldE93blByb3BlcnR5U2xvdElubGluZShKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7Ci0gICAgYm9vbCBmaWxsU3RydWN0dXJlUHJvcGVydHlTbG90KFZNJiwg
U3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIFByb3BlcnR5
U2xvdCYpOwogCiAgICAgLy8gVGhlIGtleSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQgZ2V0
T3duUHJvcGVydHlTbG90IGlzIHRoYXQgZ2V0T3duUHJvcGVydHlTbG90CiAgICAgLy8gY3VycmVu
dGx5IHJldHVybnMgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIHRoZSBET00gd2luZG93ICh3aXRoIG5v
bi1vd24gcHJvcGVydGllcykKQEAgLTY0OSw3ICs2NDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBw
dXREaXJlY3QoVk0mLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wgcHV0RGlyZWN0KFZNJiwgUHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICB2b2lkIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
ID0gMCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBwdXREaXJlY3ROb25JbmRleEFjY2Vz
c29yKFZNJiwgUHJvcGVydHlOYW1lLCBHZXR0ZXJTZXR0ZXIqLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKKyAgICBib29sIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3IoVk0mLCBQcm9wZXJ0eU5hbWUs
IEdldHRlclNldHRlciosIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgIHZvaWQgcHV0RGlyZWN0
Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFuc2l0aW9uKFZNJiwgUHJvcGVydHlOYW1lLCBHZXR0
ZXJTZXR0ZXIqLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICBib29sIHB1dERpcmVjdEFjY2Vz
c29yKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBHZXR0ZXJTZXR0ZXIqLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHB1dERpcmVjdEN1c3Rv
bUFjY2Vzc29yKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKQEAgLTEzOTIsMTIgKzEzOTEsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6Omdl
dE93bk5vbkluZGV4UHJvcGVydHlTbG90KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1YwogICAgIC8v
IGdldFByb3BlcnR5U2xvdCByZWxpZXMgb24gdGhpcyBtZXRob2QgbmV2ZXIgcmV0dXJuaW5nIGlu
ZGV4IHByb3BlcnRpZXMhCiAgICAgQVNTRVJUKCFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpOwog
Ci0gICAgZmlsbFN0cnVjdHVyZVByb3BlcnR5U2xvdCh2bSwgc3RydWN0dXJlLCBvZmZzZXQsIGF0
dHJpYnV0ZXMsIHNsb3QpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1BTFdBWVNfSU5MSU5FIGJv
b2wgSlNPYmplY3Q6OmZpbGxTdHJ1Y3R1cmVQcm9wZXJ0eVNsb3QoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCi17CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldERpcmVjdChvZmZz
ZXQpOwogICAgIGlmICh2YWx1ZS5pc0NlbGwoKSkgewogICAgICAgICBBU1NFUlQodmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRl
eCAzNzY2MjA5OTA4NTU0NDI4YmRhY2QxNWZkYWZlNmZlNDhlNDgzZDc3Li4zMjc1MzQ0MGJmOTE5
MGJiOTE0ZmJjYjdiMTE4MGJjYzYzYjM5ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtNjgzLDggKzY4Myw2IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBKU09iamVjdDo6Z2V0Tm9uUmVpZmllZFN0YXRpY1Byb3BlcnR5TmFtZXMoVk0m
IHZtLCBQcm9wZXJ0eU5hCiAgICAgaWYgKHN0YXRpY1Byb3BlcnRpZXNSZWlmaWVkKHZtKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMt
Pmdsb2JhbE9iamVjdCh2bSk7Ci0KICAgICAvLyBBZGQgcHJvcGVydGllcyBmcm9tIHRoZSBzdGF0
aWMgaGFzaHRhYmxlcyBvZiBwcm9wZXJ0aWVzCiAgICAgZm9yIChjb25zdCBDbGFzc0luZm8qIGlu
Zm8gPSBjbGFzc0luZm8odm0pOyBpbmZvOyBpbmZvID0gaW5mby0+cGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSA9IGluZm8tPnN0YXRpY1Byb3BIYXNoVGFibGU7
CkBAIC02OTIsMTEgKzY5MCw4IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09iamVjdDo6Z2V0Tm9u
UmVpZmllZFN0YXRpY1Byb3BlcnR5TmFtZXMoVk0mIHZtLCBQcm9wZXJ0eU5hCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAogICAgICAgICBmb3IgKGF1dG8gaXRlciA9IHRhYmxlLT5iZWdpbigpOyBp
dGVyICE9IHRhYmxlLT5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSBE
b250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlICYmIChpdGVyLT5hdHRyaWJ1dGVzKCkgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgaWYgKChpdGVyLT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6
UHJvcGVydHlDYWxsYmFjaykgJiYgIWl0ZXItPmlzTGF6eVByb3BlcnR5RW5hYmxlZChnbG9iYWxP
YmplY3QpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcHJvcGVydHlO
YW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgaXRlci5rZXkoKSkpOworICAgICAg
ICAgICAgaWYgKG1vZGUgPT0gRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSB8fCAhKGl0
ZXItPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpCisgICAgICAg
ICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgaXRl
ci5rZXkoKSkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0xvb2t1cC5jcHAKaW5kZXggNWI4MDZiMmFlYmFlMjUyZGE0MTM0Yjc1ZTRkMDAyZDU5NWQ3
MTIzYS4uZTU3NGNkNDEzMTg2ZDcwOTg3NjkzOGZhZDJiYzQ5ZWY1NzUyZTgwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCkBAIC00MywyMSArNDMsMzQgQEAgdm9p
ZCByZWlmeVN0YXRpY0FjY2Vzc29yKFZNJiB2bSwgY29uc3QgSGFzaFRhYmxlVmFsdWUmIHZhbHVl
LCBKU09iamVjdCYgdGhpc09iamUKICAgICB0aGlzT2JqZWN0LnB1dERpcmVjdE5vbkluZGV4QWNj
ZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgYWNjZXNzb3IsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
dmFsdWUuYXR0cmlidXRlcygpKSk7CiB9CiAKLXZvaWQgc2V0VXBTdGF0aWNQcm9wZXJ0eVNsb3Qo
Vk0mIHZtLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgY29uc3QgSGFzaFRhYmxlVmFsdWUq
IGVudHJ5LCBKU09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChWTSYgdm0s
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBIYXNoVGFibGVWYWx1ZSogZW50cnks
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6QnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNv
bnN0YW50KTsKICAgICBBU1NFUlQodGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKSk7Ci0gICAg
QVNTRVJUKCF0aGlzT2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpOwotICAgIEFT
U0VSVCghdGhpc09iamVjdC0+Z2V0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICBBU1NF
UlQoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluT3JGdW5j
dGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eSk7CisgICAgdW5zaWduZWQgYXR0cmlidXRlczsK
KyAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRy
aWJ1dGU6OkFjY2Vzc29yOworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHRoaXNPYmplY3Qt
PmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKIAotICAgIHJl
aWZ5U3RhdGljUHJvcGVydHkodm0sIGNsYXNzSW5mbywgcHJvcGVydHlOYW1lLCAqZW50cnksICp0
aGlzT2JqZWN0KTsKKyAgICBpZiAoIWlzVmFsaWRPZmZzZXQob2Zmc2V0KSkgeworICAgICAgICAv
LyBJZiBhIHByb3BlcnR5IGlzIGV2ZXIgZGVsZXRlZCBmcm9tIGFuIG9iamVjdCB3aXRoIGEgc3Rh
dGljIHRhYmxlLCB0aGVuIHdlIHJlaWZ5CisgICAgICAgIC8vIGFsbCBzdGF0aWMgZnVuY3Rpb25z
IGF0IHRoYXQgdGltZSAtIGFmdGVyIHRoaXMgd2Ugc2hvdWxkbid0IGJlIHJlLWFkZGluZyBhbnl0
aGluZy4KKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPnN0YXRpY1Byb3BlcnRpZXNSZWlmaWVkKHZt
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKTsKLSAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwot
ICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KHZtLCBwcm9wZXJ0eU5h
bWUsIGF0dHJpYnV0ZXMpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaXNWYWxpZE9mZnNldChv
ZmZzZXQpLCAiU3RhdGljIGhhc2h0YWJsZSBpbml0aWFsaWF0aW9uIGZvciAnJXMnIGRpZCBub3Qg
cHJvZHVjZSBhIHByb3BlcnR5LlxuIiwgcHJvcGVydHlOYW1lLnVpZCgpLT5jaGFyYWN0ZXJzOCgp
KTsKKyAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2bSwgY2xhc3NJbmZvLCBwcm9wZXJ0eU5h
bWUsICplbnRyeSwgKnRoaXNPYmplY3QpOworCisgICAgICAgIG9mZnNldCA9IHRoaXNPYmplY3Qt
PmdldERpcmVjdE9mZnNldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAg
aWYgKCFpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIlN0YXRp
YyBoYXNodGFibGUgaW5pdGlhbGlhdGlvbiBmb3IgIiwgcHJvcGVydHlOYW1lLCAiIGRpZCBub3Qg
cHJvZHVjZSBhIHByb3BlcnR5LlxuIik7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQogCi0gICAgdGhpc09iamVjdC0+ZmlsbFN0cnVj
dHVyZVByb3BlcnR5U2xvdCh2bSwgc3RydWN0dXJlLCBvZmZzZXQsIGF0dHJpYnV0ZXMsIHNsb3Qp
OyAgICAKKyAgICBpZiAoaXNBY2Nlc3NvcikKKyAgICAgICAgc2xvdC5zZXRDYWNoZWFibGVHZXR0
ZXJTbG90KHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxHZXR0ZXJTZXR0ZXIqPih0aGlz
T2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0KSksIG9mZnNldCk7CisgICAgZWxzZQorICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIHRoaXNPYmplY3QtPmdldERpcmVj
dChvZmZzZXQpLCBvZmZzZXQpOworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggMWRhMTdlMTg4
YzJhZDUzMzJhZGQ0OWE0ODM3MWZkMmVhZWVlMmRiYy4uYjliZWIzMWQyYTYxYmE4OTMwM2Y2OWY2
ZWRiYWFkZmZlMGVlN2VjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
QEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKICNpbmNs
dWRlICJET01KSVRHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJET01KSVRTaWduYXR1cmUuaCIK
LSNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKQEAgLTM5
LDggKzM4LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLS8vIEZJWE1FOiBUZW1wbGF0aXplIEhh
c2hUYWJsZSBhbmQgQ29tcGFjdEhhc2hJbmRleCBzbyBpbnQ4X3Qgc2l6ZWQgdmFsdWVzIGNhbiBi
ZSB1c2VkIGZvciBzbWFsbCB0YWJsZXMgdG8gcmVkdWNlIGJpbmFyeSBzaXplLgotLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzIxNgogc3RydWN0IENvbXBhY3RI
YXNoSW5kZXggewogICAgIGNvbnN0IGludDE2X3QgdmFsdWU7CiAgICAgY29uc3QgaW50MTZfdCBu
ZXh0OwpAQCAtNTAsNyArNDcsNiBAQCB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
IEdldEZ1bmN0aW9uOwogdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBQdXRG
dW5jdGlvbjsKIHR5cGVkZWYgRnVuY3Rpb25FeGVjdXRhYmxlKiAoKkJ1aWx0aW5HZW5lcmF0b3Ip
KFZNJik7CiB0eXBlZGVmIEpTVmFsdWUgKCpMYXp5UHJvcGVydHlDYWxsYmFjaykoVk0mLCBKU09i
amVjdCopOwotdHlwZWRlZiBib29sICgqSXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2spKEpT
R2xvYmFsT2JqZWN0Kik7CiAKIC8vIEhhc2ggdGFibGUgZ2VuZXJhdGVkIGJ5IHRoZSBjcmVhdGVf
aGFzaF90YWJsZSBzY3JpcHQuCiBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewpAQCAtMTAzLDIzICs5
OSw3IEBAIHN0cnVjdCBIYXNoVGFibGVWYWx1ZSB7CiAgICAgCiAgICAgcHRyZGlmZl90IGxhenlD
ZWxsUHJvcGVydHlPZmZzZXQoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q2VsbFByb3BlcnR5KTsgcmV0dXJuIG1fdmFsdWVzLnZhbHVlMTsgfQogICAg
IHB0cmRpZmZfdCBsYXp5Q2xhc3NTdHJ1Y3R1cmVPZmZzZXQoKSBjb25zdCB7IEFTU0VSVChtX2F0
dHJpYnV0ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q2xhc3NTdHJ1Y3R1cmUpOyByZXR1cm4gbV92
YWx1ZXMudmFsdWUxOyB9Ci0KICAgICBMYXp5UHJvcGVydHlDYWxsYmFjayBsYXp5UHJvcGVydHlD
YWxsYmFjaygpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRl
OjpQcm9wZXJ0eUNhbGxiYWNrKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TGF6eVByb3BlcnR5
Q2FsbGJhY2s+KG1fdmFsdWVzLnZhbHVlMSk7IH0KLSAgICBib29sIGlzTGF6eVByb3BlcnR5RW5h
YmxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNr
KTsKLSAgICAgICAgYXV0byBpc0VuYWJsZWRDYWxsYmFjayA9IGJpdHdpc2VfY2FzdDxJc0xhenlQ
cm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4obV92YWx1ZXMudmFsdWUyKTsKLSAgICAgICAgcmV0dXJu
ICFpc0VuYWJsZWRDYWxsYmFjayB8fCBpc0VuYWJsZWRDYWxsYmFjayhnbG9iYWxPYmplY3QpOwot
ICAgIH0KLQotICAgIEhhc2hUYWJsZVZhbHVlIG1ha2VSZWFkT25seUNvcHkoKSBjb25zdAotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fYXR0cmlidXRlcyAmIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nl
c3Nvck9yQ3VzdG9tQWNjZXNzb3JPclZhbHVlKTsKLSAgICAgICAgSGFzaFRhYmxlVmFsdWUgY29w
eSA9ICp0aGlzOwotICAgICAgICBjb3B5Lm1fYXR0cmlidXRlcyB8PSBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHk7Ci0gICAgICAgIGNvcHkubV92YWx1ZXMudmFsdWUyID0gMDsKLSAgICAgICAg
cmV0dXJuIGNvcHk7Ci0gICAgfQogfTsKIAogc3RydWN0IEhhc2hUYWJsZSB7CkBAIC0yMjEsNyAr
MjAxLDcgQEAgc3RydWN0IEhhc2hUYWJsZSB7CiAgICAgfQogfTsKIAotSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzZXRVcFN0YXRpY1Byb3BlcnR5U2xvdChWTSYsIGNvbnN0IENsYXNzSW5mbyosIGNv
bnN0IEhhc2hUYWJsZVZhbHVlKiwgSlNPYmplY3QqIHRoaXNPYmplY3QsIFByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNldFVwU3RhdGljRnVuY3Rp
b25TbG90KFZNJiwgY29uc3QgQ2xhc3NJbmZvKiwgY29uc3QgSGFzaFRhYmxlVmFsdWUqLCBKU09i
amVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgcmVpZnlTdGF0aWNBY2Nlc3NvcihWTSYsIGNvbnN0IEhhc2hUYWJsZVZh
bHVlJiwgSlNPYmplY3QmIHRoaXNPYmplY3QsIFByb3BlcnR5TmFtZSk7CiAKIGlubGluZSBCdWls
dGluR2VuZXJhdG9yIEhhc2hUYWJsZVZhbHVlOjpidWlsdGluQWNjZXNzb3JHZXR0ZXJHZW5lcmF0
b3IoKSBjb25zdApAQCAtMjM4LDcgKzIxOCw2IEBAIGlubGluZSBCdWlsdGluR2VuZXJhdG9yIEhh
c2hUYWJsZVZhbHVlOjpidWlsdGluQWNjZXNzb3JTZXR0ZXJHZW5lcmF0b3IoKSBjb25zdAogICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KG1fdmFsdWVzLnZhbHVl
Mik7CiB9CiAKLS8vIEZJWE1FOiBJbmxpbmUgdGhpcyBmdW5jdGlvbiBpbnRvIGl0cyBjYWxsIHNp
dGUgc28gc3RhdGljUHJvcGVydGllc1JlaWZpZWQoKSBjaGVjayBjYW4gYmUgaG9pc3RlZC4KIGlu
bGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZShWTSYgdm0sIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBIYXNoVGFibGUmIHRhYmxlLCBKU09iamVjdCogdGhp
c09iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGlmICh0aGlzT2JqZWN0LT5zdGF0aWNQcm9wZXJ0aWVzUmVpZmllZCh2bSkpCkBAIC0y
NDgsMjAgKzIyNywxOCBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFi
bGUoVk0mIHZtLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgYwogICAgIGlmICghZW50cnkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICgoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IFByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSAmJiAhZW50cnktPmlzTGF6eVBy
b3BlcnR5RW5hYmxlZCh0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pKSkgewotICAgICAgICBz
bG90LmRpc2FibGVDYWNoaW5nKCk7Ci0gICAgICAgIHNsb3Quc2V0SXNUYWludGVkQnlPcGFxdWVP
YmplY3QoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBpZiAoZW50cnktPmF0
dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNz
b3JPckxhenlQcm9wZXJ0eSkKKyAgICAgICAgcmV0dXJuIHNldFVwU3RhdGljRnVuY3Rpb25TbG90
KHZtLCBjbGFzc0luZm8sIGVudHJ5LCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwog
Ci0gICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QnVpbHRp
bk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0YW50KSB7Ci0gICAgICAg
IHNldFVwU3RhdGljUHJvcGVydHlTbG90KHZtLCBjbGFzc0luZm8sIGVudHJ5LCB0aGlzT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgUHJv
cGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlcikgeworICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSks
IGpzTnVtYmVyKGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmli
dXRlOjpET01KSVRBdHRyaWJ1dGUpIHsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShlbnRy
eS0+YXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCAiRE9NSklUQXR0
cmlidXRlIHN1cHBvcnRzIHJlYWRvbmx5IGF0dHJpYnV0ZXMgY3VycmVudGx5LiIpOwogICAgICAg
ICBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklUID0gZW50cnktPmRvbUpJVCgpOwot
ICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzRm9y
U3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBkb21KSVQtPmdldHRlcigpLCBlbnRyeS0+
cHJvcGVydHlQdXR0ZXIoKSwgRE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IGNsYXNzSW5mbywgZG9t
SklUIH0pOworICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBkb21KSVQtPmdldHRlcigp
LCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgY2xhc3NJbmZvLCBkb21KSVQgfSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzM1LDE1ICszMTIsOCBAQCBpbmxp
bmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnR5KFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8sIGNvbnN0IFByb3BlcgogICAgIH0KICAgICAKICAgICBpZiAodmFsdWUuYXR0cmlidXRl
cygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spIHsKLSAgICAgICAgQVNT
RVJUKHZhbHVlLmlzTGF6eVByb3BlcnR5RW5hYmxlZCh0aGlzT2JqLmdsb2JhbE9iamVjdCh2bSkp
KTsKLQogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHZhbHVlLmxhenlQcm9wZXJ0eUNhbGxiYWNr
KCkodm0sICZ0aGlzT2JqKTsKLSAgICAgICAgaWYgKHJlc3VsdC5pc0dldHRlclNldHRlcigpKQot
ICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCBwcm9wZXJ0
eU5hbWUsIGpzQ2FzdDxHZXR0ZXJTZXR0ZXIqPihyZXN1bHQpLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwot
ICAgICAgICBlbHNlIGlmIChyZXN1bHQuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSkKLSAgICAgICAg
ICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgcmVz
dWx0LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBy
ZXN1bHQsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAg
ICAgIHRoaXNPYmoucHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIHJlc3VsdCwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMzY5LDEzICszMzksMTAgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9wZXJ0
eShWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBjb25zdCBQcm9wZXIKIHRlbXBs
YXRlPHVuc2lnbmVkIG51bWJlck9mVmFsdWVzPgogaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9w
ZXJ0aWVzKFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlICgmdmFsdWVzKVtudW1iZXJPZlZhbHVlc10sIEpTT2JqZWN0JiB0aGlzT2JqKQogewot
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0aGlzT2JqLmdsb2JhbE9iamVjdCh2
bSk7CiAgICAgQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIgdHJhbnNpdGlvbk9wdGltaXplcih2
bSwgJnRoaXNPYmopOwogICAgIGZvciAoYXV0byYgdmFsdWUgOiB2YWx1ZXMpIHsKICAgICAgICAg
aWYgKCF2YWx1ZS5tX2tleSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoKHZh
bHVlLmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSAm
JiAhdmFsdWUuaXNMYXp5UHJvcGVydHlFbmFibGVkKGdsb2JhbE9iamVjdCkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgYXV0byBrZXkgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4odmFsdWUubV9rZXkpLCBzdHJsZW4odmFs
dWUubV9rZXkpKTsKICAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2bSwgY2xhc3NJbmZvLCBr
ZXksIHZhbHVlLCB0aGlzT2JqKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
SlNEb2xsYXJWTS5jcHAKaW5kZXggMWNhOTlkMzEyODkxYzM1MDlkNTZhZGNmYTE1ZGQ3YWQ0ZDcx
NjRhMC4uNTlhNjQ0YTM0MGM2MGRmNjcxODA1Yzg3ODEwNDRmNWQ3MTI5OTlmYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtODYyLDgwICs4NjIsNiBA
QCBwdWJsaWM6CiAgICAgfQogfTsKIAotc3RhdGljIGlubGluZSBib29sIGdldERpcmVjdEJvb2xl
YW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQVNDSUlMaXRlcmFsIHN0cmluZykKLXsK
LSAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKLSAgICBKU1ZhbHVlIGlzRW5hYmxlZCA9IGdsb2JhbE9iamVjdC0+Z2V0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBzdHJpbmcpKTsKLSAgICBpZiAo
IWlzRW5hYmxlZCB8fCAhaXNFbmFibGVkLmlzQm9vbGVhbigpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIGlzRW5hYmxlZC5hc0Jvb2xlYW4oKTsKLX0KLQotc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obGF6eUFjY2Vzc29yR2V0dGVyKTsKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihsYXp5QWNjZXNzb3JHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkgeyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCkpOyB9Ci1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVMYXp5Q2FsbGJhY2tBY2Nlc3NvcihWTSYg
dm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KSB7IHJldHVybiBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pLCAwLCBTdHJpbmcoKSwgbGF6eUFjY2Vzc29yR2V0
dGVyKSwgbnVsbHB0cik7IH0KLXN0YXRpYyBib29sIGlzRW5hYmxlZExhenlDYWxsYmFja0FjY2Vz
c29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIHsgcmV0dXJuIGdldERpcmVjdEJvb2xl
YW4oZ2xvYmFsT2JqZWN0LCAiaXNFbmFibGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IiX3MpOyB9Ci0K
LXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUxhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yKFZNJiB2bSwg
SlNPYmplY3QqKSB7IHJldHVybiBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgdGVzdFN0
YXRpY0FjY2Vzc29yR2V0dGVyLCB0ZXN0U3RhdGljQWNjZXNzb3JQdXR0ZXIpOyB9Ci1zdGF0aWMg
Ym9vbCBpc0VuYWJsZWRMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSB7IHJldHVybiBnZXREaXJlY3RCb29sZWFuKGdsb2JhbE9iamVjdCwgImlz
RW5hYmxlZExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yIl9zKTsgfQotCi1zdGF0aWMgSlNWYWx1
ZSBjcmVhdGVMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIoVk0mLCBKU09iamVjdCopIHsgcmV0
dXJuIGpzTnVtYmVyKDQyKTsgfQotc3RhdGljIGJvb2wgaXNFbmFibGVkTGF6eUNhbGxiYWNrQ29u
c3RhbnRJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIHsgcmV0dXJuIGdldERp
cmVjdEJvb2xlYW4oZ2xvYmFsT2JqZWN0LCAiaXNFbmFibGVkTGF6eUNhbGxiYWNrQ29uc3RhbnRJ
bnRlZ2VyIl9zKTsgfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IEhhc2hUYWJsZVZhbHVlIHN0YXRp
Y0xhenlQcm9wZXJ0eVRhYmxlVmFsdWVzWzNdID0gewotICAgIHsgInRlc3RMYXp5Q2FsbGJhY2tB
Y2Nlc3NvciIsIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRl
OjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUxhenlDYWxsYmFja0FjY2Vzc29yKSwgKGludHB0
cl90KXN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRM
YXp5Q2FsbGJhY2tBY2Nlc3NvcikgfSB9LAotICAgIHsgInRlc3RMYXp5Q2FsbGJhY2tDdXN0b21B
Y2Nlc3NvciIsIFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IFByb3BlcnR5QXR0
cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUxhenlDYWxsYmFja0N1c3RvbUFjY2Vz
c29yKSwgKGludHB0cl90KXN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNr
Pihpc0VuYWJsZWRMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvcikgfSB9LAotICAgIHsgInRlc3RM
YXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIiLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpQcm9w
ZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVBy
b3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUxhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciksIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVk
TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyKSB9IH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3Ry
dWN0IENvbXBhY3RIYXNoSW5kZXggc3RhdGljTGF6eVByb3BlcnR5VGFibGVJbmRleFs4XSA9IHsK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDEsIC0xIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IEhhc2hUYWJsZSBz
dGF0aWNMYXp5UHJvcGVydHlUYWJsZSA9Ci0gICAgeyAzLCA3LCB0cnVlLCBudWxscHRyLCBzdGF0
aWNMYXp5UHJvcGVydHlUYWJsZVZhbHVlcywgc3RhdGljTGF6eVByb3BlcnR5VGFibGVJbmRleCB9
OwotCi1jbGFzcyBTdGF0aWNMYXp5UHJvcGVydHkgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
Ci0gICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKLXB1YmxpYzoKLSAgICBTdGF0aWNMYXp5UHJvcGVydHkoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0g
ICAgewotICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgIH0KLQot
ICAgIERFQ0xBUkVfSU5GTzsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJz
cGFjZUFjY2Vzcz4KLSAgICBzdGF0aWMgQ29tcGxldGVTdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0m
IHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZ2bS5jZWxsU3BhY2U7Ci0gICAgfQotCi0gICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0gICAgc3RhdGljIFN0YXRpY0xhenlQcm9w
ZXJ0eSogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBTdGF0aWNMYXp5UHJv
cGVydHkqIGxhenlQcm9wZXJ0eSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0YXRpY0xh
enlQcm9wZXJ0eT4odm0uaGVhcCkpIFN0YXRpY0xhenlQcm9wZXJ0eSh2bSwgc3RydWN0dXJlKTsK
LSAgICAgICAgbGF6eVByb3BlcnR5LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIHJldHVy
biBsYXp5UHJvcGVydHk7Ci0gICAgfQotfTsKLQogY2xhc3MgT2JqZWN0RG9pbmdTaWRlRWZmZWN0
UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwogICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c1B1dDsKQEAgLTE3ODYsNyArMTcxMiw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21H
ZXR0ZXJTZXR0ZXI6OnNfaW5mbyA9IHsgIkpTVGVzdEN1c3RvbUdldHRlclNldHRlciIsCiAKIGNv
bnN0IENsYXNzSW5mbyBTdGF0aWNDdXN0b21BY2Nlc3Nvcjo6c19pbmZvID0geyAiU3RhdGljQ3Vz
dG9tQWNjZXNzb3IiLCAmQmFzZTo6c19pbmZvLCAmc3RhdGljQ3VzdG9tQWNjZXNzb3JUYWJsZSwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShTdGF0aWNDdXN0b21BY2Nlc3NvcikgfTsKIGNv
bnN0IENsYXNzSW5mbyBTdGF0aWNDdXN0b21WYWx1ZTo6c19pbmZvID0geyAiU3RhdGljQ3VzdG9t
VmFsdWUiLCAmQmFzZTo6c19pbmZvLCAmc3RhdGljQ3VzdG9tVmFsdWVUYWJsZSwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShTdGF0aWNDdXN0b21WYWx1ZSkgfTsKLWNvbnN0IENsYXNzSW5m
byBTdGF0aWNMYXp5UHJvcGVydHk6OnNfaW5mbyA9IHsgIlN0YXRpY0xhenlQcm9wZXJ0eSIsICZC
YXNlOjpzX2luZm8sICZzdGF0aWNMYXp5UHJvcGVydHlUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShTdGF0aWNMYXp5UHJvcGVydHkpIH07CiBjb25zdCBDbGFzc0luZm8gT2JqZWN0
RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzOjpzX2luZm8gPSB7ICJP
YmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMiLCAmQmFzZTo6
c19pbmZvLCAmc3RhdGljQ3VzdG9tQWNjZXNzb3JUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMp
IH07CiAKIEVsZW1lbnRIYW5kbGVPd25lciogRWxlbWVudDo6aGFuZGxlT3duZXIoKQpAQCAtMjA1
Miw3ICsxOTc3LDYgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25D
cmVhdGVXYXNtU3RyZWFtaW5nQ29tcGlsZXJGb3JJbnN0YW50aWEKICNlbmRpZgogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3Nv
cik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRp
Y0N1c3RvbVZhbHVlKTsKLXN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
Q3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RT
bG90U3RhdHVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOwpAQCAtMzA1NSwxNiArMjk3OSw2
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTdGF0
aWNMYXp5UHJvcGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKLXsKLSAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7Ci0gICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBTdGF0aWNMYXp5UHJvcGVydHk6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSk7Ci0gICAgYXV0byogcmVzdWx0ID0gU3RhdGljTGF6
eVByb3BlcnR5OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwotfQotCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVh
dGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTM4NTcsNyArMzc3MSw2IEBAIHZv
aWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogI2VuZGlmCiAgICAgYWRkRnVu
Y3Rpb24odm0sICJjcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvciIsIGZ1bmN0aW9uQ3JlYXRlU3Rh
dGljQ3VzdG9tQWNjZXNzb3IsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlU3RhdGlj
Q3VzdG9tVmFsdWUiLCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlLCAwKTsKLSAgICBh
ZGRGdW5jdGlvbih2bSwgImNyZWF0ZVN0YXRpY0xhenlQcm9wZXJ0eSIsIGZ1bmN0aW9uQ3JlYXRl
U3RhdGljTGF6eVByb3BlcnR5LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZU9iamVj
dERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cyIsIGZ1bmN0aW9uQ3Jl
YXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzLCAwKTsK
ICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSIsIGZ1bmN0
aW9uQ3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lLCAxKTsKICAgICBhZGRGdW5jdGlvbih2bSwg
ImdldFByaXZhdGVQcm9wZXJ0eSIsIGZ1bmN0aW9uR2V0UHJpdmF0ZVByb3BlcnR5LCAyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUludGVybmFscy5qcwppbmRleCAzMTBiMjAxMjMyOGE5NzczYzBmNTFiYTdmYjZkZTMzYTY4Y2Fm
NWIwLi5iZGYxNmY5MTVmNjU0YzljOGY2YzBiNDk1NGM4OGQ2NjIxZGJjMjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzCkBAIC0xOTQsNyArMTk0LDcgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1QaXBl
VG9Xcml0YWJsZVN0cmVhbShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwcmV2ZW50Q2xvc2UsIHAKICAg
ICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHkuQHByb21pc2U7CiAgICAgICAg
ICAgICB9LCBlcnJvcik7CiAgICAgICAgIH07Ci0gICAgICAgIGlmIChAQWJvcnRTaWduYWwuQHdo
ZW5TaWduYWxBYm9ydGVkKHNpZ25hbCwgYWxnb3JpdGhtKSkKKyAgICAgICAgaWYgKEB3aGVuU2ln
bmFsQWJvcnRlZChzaWduYWwsIGFsZ29yaXRobSkpCiAgICAgICAgICAgICByZXR1cm4gcGlwZVN0
YXRlLnByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CdWlsdGluQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQnVpbHRpbkNvbnN0cnVjdG9yLmgKaW5kZXggMmQ2
OGMxZWVhM2QwMjI1YmQ4ZWJhNTg2NjlmNDMxNjcwN2Q5Y2YzZS4uZDFlMWJlZmJkOWM5NTQ0NTYz
NDY1Y2NiODkwZGE0MzU5OWI3YzY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CdWlsdGluQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oCkBAIC0yOCw3ICsyOCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGNsYXNzIEpTRE9NQnVp
bHRpbkNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFz
ZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0
aWMgSlNET01CdWlsdGluQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVj
dG9yLmgKaW5kZXggMjkzMGUxN2ZhMzY5MTQ1N2VmZGY5YTlkMzE0Mzk4MzA1ZWYyNWI0Mi4uNDYy
MzRkMmE0YjdiMzIxODg4YTBlMjRmYjllNWFkMmRmYTM5ODAyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3IuaApAQCAtMjYsNyArMjYsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFzcyBKU0RPTUNv
bnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEpTRE9NQ29uc3RydWN0b3JCYXNlIHsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNET01Db25zdHJ1Y3RvckJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIEpTRE9NQ29uc3RydWN0b3Iq
IGNyZWF0ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mLCBKU0M6
OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5o
CmluZGV4IGE5MTcyYTAxYjQ1NTQ4MWU3NmNjYTdlMjRjNzM5YjMyZWNkOWIyN2YuLjkyZTRkZjY1
ZWI4NWRmZWUxYTcyYzc5YjY5ZjAwMDA3MjRjYzY2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oCkBAIC0z
Myw4ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xh
c3M+IGNsYXNzIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZSA6IHB1YmxpYyBKU0RPTU9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRE9NT2JqZWN0OwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFnczsKIAorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogICAgIHN0YXRpYyBKU0RP
TUNvbnN0cnVjdG9yTm90Q2FsbGFibGUqIGNyZWF0ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaAppbmRleCAwMjc0YzIxNzg0ZDQ3ZGNj
MTZkMWM4ZDRiZGEyZTdmZmRmZjI3NTJjLi5jNDk5OWQ5ZjI5Njc0MDlmMjdkMjNiNzUwM2Q1MWM3
NTZiOWM0MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgKQEAgLTI2LDcgKzI2LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUgZmluYWwgOiBwdWJsaWMgSlNET01Db25zdHJ1
Y3RvckJhc2UgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0RPTUNvbnN0cnVjdG9yQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0
aWMgSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUqIGNyZWF0ZShKU0M6OlZNJiwgSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlND
OjpKU1ZhbHVlIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggMmZlZDU2NmI2ZWY1MTc1ZWVhMTM1MWU4ZTIwZDY3
ZmMyOWJiYzQ3NS4uNDNlNTQyZjc1NDE2YmMxNTgzMzIwZjhkMjI0ZmI0NTc3OGZkNjQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgorI2luY2x1ZGUgIkpTQWJvcnRBbGdv
cml0aG0uaCIKICNpbmNsdWRlICJKU0Fib3J0U2lnbmFsLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNzEsNiArNzIsNyBA
QCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlu
cyk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlu
cyk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGlzUmVhZGFibGVCeXRlU3RyZWFtQVBJRW5h
YmxlZCk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGlzV3JpdGFibGVTdHJlYW1BUElFbmFi
bGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2hlblNpZ25hbEFib3J0ZWQpOwogCiBj
b25zdCBDbGFzc0luZm8gSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUdsb2JhbE9i
amVjdCIsICZKU0dsb2JhbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTRE9NR2xvYmFsT2JqZWN0KSB9OwogCkBAIC0xNjAsNiArMTYyLDIzIEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpc1dyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53cml0YWJsZVN0
cmVhbUFQSUVuYWJsZWQoKSkpOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2hlblNp
Z25hbEFib3J0ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCit7CisgICAgQVNTRVJUKGNhbGxGcmFtZSk7CisgICAgQVNTRVJUKGNhbGxGcmFt
ZS0+YXJndW1lbnRDb3VudCgpID09IDIpOworCisgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byogYWJvcnRTaWduYWwgPSBqc0R5bmFtaWNDYXN0PEpTQWJvcnRTaWdu
YWwqPih2bSwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKFVOTElL
RUxZKCFhYm9ydFNpZ25hbCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZShKU0M6OkpTVmFsdWU6OkpTRmFsc2UpKTsKKworICAgIGF1dG8qIGpzRE9NR2xvYmFsT2JqZWN0
ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIFJl
ZjxBYm9ydEFsZ29yaXRobT4gYWJvcnRBbGdvcml0aG0gPSBKU0Fib3J0QWxnb3JpdGhtOjpjcmVh
dGUoY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKS5nZXRPYmplY3QoKSwganNET01HbG9i
YWxPYmplY3QpOworCisgICAgYm9vbCByZXN1bHQgPSBBYm9ydFNpZ25hbDo6d2hlblNpZ25hbEFi
b3J0ZWQoYWJvcnRTaWduYWwtPndyYXBwZWQoKSwgV1RGTW92ZShhYm9ydEFsZ29yaXRobSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0ID8gSlNWYWx1ZShKU0M6OkpTVmFsdWU6
OkpTVHJ1ZSkgOiBKU1ZhbHVlKEpTQzo6SlNWYWx1ZTo6SlNGYWxzZSkpOworfQorCiBTVVBQUkVT
U19BU0FOIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmFkZEJ1aWx0aW5HbG9iYWxzKFZNJiB2bSkK
IHsKICAgICBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucy5pbml0aWFsaXplKCp0aGlzKTsKQEAg
LTE3Miw2ICsxOTEsOCBAQCBTVVBQUkVTU19BU0FOIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmFk
ZEJ1aWx0aW5HbG9iYWxzKFZNJiB2bSkKICAgICAgICAgICAgIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMiwgU3RyaW5nKCksIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyksIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KSwKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyhjbGllbnRE
YXRhLmJ1aWx0aW5OYW1lcygpLm1ha2VET01FeGNlcHRpb25Qcml2YXRlTmFtZSgpLAogICAgICAg
ICAgICAgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgbWFrZURPTUV4
Y2VwdGlvbkZvckJ1aWx0aW5zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLAorICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xv
YmFsUHJvcGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkud2hlblNpZ25hbEFib3J0
ZWRQcml2YXRlTmFtZSgpLAorICAgICAgICAgICAgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAyLCBTdHJpbmcoKSwgd2hlblNpZ25hbEFib3J0ZWQpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksCiAgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5j
bG9uZUFycmF5QnVmZmVyUHJpdmF0ZU5hbWUoKSwKICAgICAgICAgICAgIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMywgU3RyaW5nKCksIGNsb25lQXJyYXlCdWZmZXIpLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksCiAgICAg
ICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWls
dGluTmFtZXMoKS5zdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclByaXZhdGVOYW1lKCksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IDg4ODQ0ZTIyNzczZDdiMzJiNjY4NGZmYWE3NDcyYjI1YTA3NjBhZGQuLjc3MTg2MjRiYTEw
NTJhODdmNzk0ODQyMTYzZWUwYjI1ZmUwY2QyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMiw3ICsxMiw2IEBACiAj
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMiBHb29nbGUgSW5jLgogIyBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMgQ29weXJpZ2h0IChDKSAyMDIxIEFsZXhleSBTaHZheWthIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDEyICszNyw2IEBAIHVzZSBDYXJwIHF3PGxv
bmdtZXNzPjsKIHVzZSBEYXRhOjpEdW1wZXI7CiB1c2UgSGFzaGVyOwogCi11c2UgY29uc3RhbnQg
ewotICAgIENPTlRFWFRfTkFNRV9DT05TVFJVQ1RPUiA9PiAiQ29uc3RydWN0b3IiLAotICAgIENP
TlRFWFRfTkFNRV9QUk9UT1RZUEUgPT4gIlByb3RvdHlwZSIsCi0gICAgQ09OVEVYVF9OQU1FX0lO
U1RBTkNFID0+ICJJbnN0YW5jZSIsCi19OwotCiBteSAkY29kZUdlbmVyYXRvcjsKIG15ICR3cml0
ZURlcGVuZGVuY2llczsKIApAQCAtMTE1LDEyICsxMDgsNiBAQCBteSAkaGVhZGVyVGVtcGxhdGUg
PSA8PCAiRU9GIjsKICovCiBFT0YKIAotc3ViIElETEludGVyZmFjZTo6Y2xhc3NOYW1lCi17Ci0g
ICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICByZXR1cm4gIkpTIiAuICRzZWxmLT50eXBlLT5uYW1l
OwotfQotCiBzdWIgYXNzZXJ0CiB7CiAgICAgbXkgJG1lc3NhZ2UgPSBzaGlmdDsKQEAgLTIwNTUs
MTYgKzIwNDIsNiBAQCBzdWIgSXNBY2NlbGVyYXRlZERPTUF0dHJpYnV0ZQogICAgIHJldHVybiAx
OwogfQogCi1zdWIgU3RyaW5naWZ5SlNDQXR0cmlidXRlcwotewotICAgIG15ICRzcGVjaWFscyA9
IHNoaWZ0OwotICAgIG15ICRsZW5ndGggPSBzY2FsYXIoQCRzcGVjaWFscyk7Ci0KLSAgICByZXR1
cm4gIjAiIGlmICRsZW5ndGggPT0gMDsKLSAgICByZXR1cm4gInN0YXRpY19jYXN0PHVuc2lnbmVk
PihAJHtzcGVjaWFsc30pIiBpZiAkbGVuZ3RoID09IDE7Ci0gICAgcmV0dXJuIGpvaW4oIiB8ICIs
IEAkc3BlY2lhbHMpOwotfQotCiBzdWIgR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0ZQogewog
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKQEAgLTIwNzgsMTYgKzIwNTUsMTAgQEAgc3ViIEdl
dEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e05vdEVudW1lcmFibGV9IHx8ICRpc0dsb2JhbENvbnN0cnVjdG9yKTsKICAgICBwdXNo
KEBzcGVjaWFscywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IikgaWYgSXNSZWFk
b25seSgkYXR0cmlidXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc0dsb2JhbENvbnN0cnVjdG9yIG9yIElz
SlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotCi0gICAgaWYgKE5lZWRzUnVudGlt
ZUNoZWNrKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpKSB7Ci0gICAgICAgIHB1c2goQHNwZWNpYWxz
LCAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayIpOwotICAgICAgICBy
ZXR1cm4gXEBzcGVjaWFsczsKLSAgICB9Ci0KICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSIpIGlmIElzQWNjZWxlcmF0ZWRET01BdHRyaWJ1
dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluIikg
aWYgIElzSlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIHJldHVybiBcQHNw
ZWNpYWxzOworICAgIHJldHVybiAic3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCIgLiAoKEBzcGVjaWFs
cyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIikgLiAiKSI7CiB9CiAKIHN1YiBH
ZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uCkBAIC0yMTIwLDYgKzIwOTEsNTMgQEAgc3ViIEdldE5h
bWVkRGVsZXRlck9wZXJhdGlvbgogICAgIHJldHVybiBHZXRTcGVjaWFsQWNjZXNzb3JPcGVyYXRp
b25Gb3JUeXBlKCRpbnRlcmZhY2UsICJkZWxldGVyIiwgIkRPTVN0cmluZyIsIDEpOwogfQogCitz
dWIgSW5zdGFuY2VPcGVyYXRpb25Db3VudAoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsK
KyAgICBteSAkY291bnQgPSAwOworCisgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRpbnRl
cmZhY2UtPm9wZXJhdGlvbnN9KSB7CisgICAgICAgICRjb3VudCsrIGlmIE9wZXJhdGlvblNob3Vs
ZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICByZXR1
cm4gJGNvdW50OworfQorCitzdWIgUHJvdG90eXBlT3BlcmF0aW9uQ291bnQKK3sKKyAgICBteSAk
aW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGNvdW50ID0gMDsKKworICAgIGZvcmVhY2ggbXkg
JG9wZXJhdGlvbiAoQHskaW50ZXJmYWNlLT5vcGVyYXRpb25zfSkgeworICAgICAgICAkY291bnQr
KyBpZiAhJG9wZXJhdGlvbi0+aXNTdGF0aWMgJiYgIU9wZXJhdGlvblNob3VsZEJlT25JbnN0YW5j
ZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gJGNvdW50Owor
fQorCitzdWIgSW5zdGFuY2VQcm9wZXJ0eUNvdW50Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNo
aWZ0OworICAgIG15ICRjb3VudCA9IDA7CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRp
bnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICRjb3VudCsrIGlmIEF0dHJpYnV0ZVNo
b3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICB9CisgICAgJGNv
dW50ICs9IEluc3RhbmNlT3BlcmF0aW9uQ291bnQoJGludGVyZmFjZSk7CisgICAgcmV0dXJuICRj
b3VudDsKK30KKworc3ViIFByb3RvdHlwZVByb3BlcnR5Q291bnQKK3sKKyAgICBteSAkaW50ZXJm
YWNlID0gc2hpZnQ7CisgICAgbXkgJGNvdW50ID0gMDsKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgJGNvdW50KysgaWYgIUF0
dHJpYnV0ZVNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICB9
CisgICAgJGNvdW50ICs9IFByb3RvdHlwZU9wZXJhdGlvbkNvdW50KCRpbnRlcmZhY2UpOworICAg
ICRjb3VudCsrIGlmIE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKTsKKyAgICBy
ZXR1cm4gJGNvdW50OworfQorCiBzdWIgSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CkBAIC0yMTYxLDYgKzIxNzksMTMgQEAg
c3ViIEluc3RhbmNlT3ZlcnJpZGVzRGVsZXRlUHJvcGVydHkKICAgICAgICAgfHwgR2V0TmFtZWRE
ZWxldGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwogfQogCitzdWIgUHJvdG90eXBlSGFzU3RhdGlj
UHJvcGVydHlUYWJsZQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkbnVt
Q29uc3RhbnRzID0gQHskaW50ZXJmYWNlLT5jb25zdGFudHN9OworICAgIHJldHVybiAkbnVtQ29u
c3RhbnRzID4gMCB8fCBQcm90b3R5cGVQcm9wZXJ0eUNvdW50KCRpbnRlcmZhY2UpID4gMDsKK30K
Kwogc3ViIEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuCiB7CiAgICAgbXkgJGludGVyZmFjZSA9
IHNoaWZ0OwpAQCAtMjg4NSw3ICsyOTEwLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKICAgICB9CiAKLSAgICAkc3RydWN0
dXJlRmxhZ3N7IkpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSJ9ID0gMSBpZiBJbnN0YW5jZUhh
c1Byb3BlcnRpZXMoJGludGVyZmFjZSk7CisgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Okhhc1N0
YXRpY1Byb3BlcnR5VGFibGUifSA9IDEgaWYgSW5zdGFuY2VQcm9wZXJ0eUNvdW50KCRpbnRlcmZh
Y2UpID4gMDsKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6TmV3SW1wdXJlUHJvcGVydHlGaXJl
c1dhdGNocG9pbnRzIn0gPSAxIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e05l
d0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50c307CiAgICAgJHN0cnVjdHVyZUZsYWdzeyJK
U0M6OklzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0In0gPSAxIGlmICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0lzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0fTsK
ICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCJ9ID0gMSBp
ZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
fTsKQEAgLTMyODYsMjE5ICszMzExLDExNSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICB9CiB9
CiAKLXN1YiBTaG91bGRCZU9uSW5zdGFuY2UKLXsKLSAgICBteSAoJGludGVyZmFjZSwgJGNvbnRl
eHQpID0gQF87Ci0KLSAgICByZXR1cm4gT3BlcmF0aW9uU2hvdWxkQmVPbkluc3RhbmNlKCRpbnRl
cmZhY2UsICRjb250ZXh0KSBpZiByZWYoJGNvbnRleHQpIGVxICJJRExPcGVyYXRpb24iOwotICAg
IHJldHVybiBBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGNvbnRleHQp
IGlmIHJlZigkY29udGV4dCkgZXEgIklETEF0dHJpYnV0ZSI7Ci0KLSAgICBhc3NlcnQoIlVuc3Vw
cG9ydGVkIGFyZ3VtZW50OiAiIC4gcmVmKCRjb250ZXh0KSk7Ci19Ci0KLXN1YiBQcm90b3R5cGVI
YXNQcm9wZXJ0aWVzCi17Ci0gICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIHJldHVybiAx
IGlmIEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfTsKLSAgICByZXR1cm4gMSBpZiBOZWVkc0NvbnN0
cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSk7Ci0gICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uT3JB
dHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+b3BlcmF0aW9uc30sIEB7JGludGVyZmFjZS0+YXR0cmli
dXRlc30pIHsKLSAgICAgICAgcmV0dXJuIDEgdW5sZXNzIFNob3VsZEJlT25JbnN0YW5jZSgkaW50
ZXJmYWNlLCAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0K
LQotc3ViIEluc3RhbmNlSGFzUHJvcGVydGllcwotewotICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKLSAgICBmb3JlYWNoIG15ICRvcGVyYXRpb25PckF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5v
cGVyYXRpb25zfSwgQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICByZXR1cm4g
MSBpZiBTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJG9wZXJhdGlvbk9yQXR0cmlidXRl
KTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN1YiBHZXRBdHRyaWJ1dGVHZXR0ZXIKLXsK
LSAgICBteSAoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSkgPSBAXzsKLSAgICByZXR1cm4gJGF0dHJp
YnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfQotICAgICAgICA/ICImRE9NSklUQXR0
cmlidXRlRm9yIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tf
dWNmaXJzdCgkYXR0cmlidXRlLT5uYW1lKQotICAgICAgICA6IEdldEF0dHJpYnV0ZUdldHRlck5h
bWUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+Y2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLX0KLQot
c3ViIEdldEF0dHJpYnV0ZVNldHRlcgotewotICAgIG15ICgkaW50ZXJmYWNlLCAkYXR0cmlidXRl
KSA9IEBfOwotICAgICMgRklYTUU6IFJlbW92ZSBJc0NvbnN0cnVjdG9yVHlwZSBjaGVjayBieSB1
dGlsaXppbmcgTGF6eVByb3BlcnR5IGZvciB3aW5kb3cuJUludGVyZmFjZSUgY29uc3RydWN0b3Jz
LgotICAgIHJldHVybiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5J
c0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKSA/ICJudWxscHRyIiA6IEdldEF0dHJp
YnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+Y2xhc3NOYW1lLCAkYXR0cmli
dXRlKTsKLX0KLQotc3ViIEdldEF0dHJpYnV0ZUpTVmFsdWUKLXsKLSAgICBteSAoJGludGVyZmFj
ZSwgJGF0dHJpYnV0ZSkgPSBAXzsKLSAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVy
KCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVT
ZXR0ZXIoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuIElzQWNjZWxlcmF0ZWRE
T01BdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSkKLSAgICAgICAgPyAiRE9NQXR0cmli
dXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sICR7Z2V0dGVyfSwgJHtzZXR0ZXJ9LCBET01BdHRy
aWJ1dGVBbm5vdGF0aW9uIHsgIiAuICRpbnRlcmZhY2UtPmNsYXNzTmFtZSAuICI6OmluZm8oKSwg
bnVsbHB0ciB9KSIKLSAgICAgICAgOiAiQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sICR7
Z2V0dGVyfSwgJHtzZXR0ZXJ9KSI7Ci19Ci0KLXN1YiBHZXRPcGVyYXRpb25KU1ZhbHVlCi17Ci0g
ICAgbXkgKCRpbnRlcmZhY2UsICRvcGVyYXRpb24sICRnbG9iYWxPYmplY3RQdHIpID0gQF87Ci0g
ICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAkaW50ZXJm
YWNlLT5jbGFzc05hbWUsICRvcGVyYXRpb24pOwotICAgIHJldHVybiBJc0pTQnVpbHRpbigkaW50
ZXJmYWNlLCAkb3BlcmF0aW9uKQotICAgICAgICA/ICJKU0Z1bmN0aW9uOjpjcmVhdGUodm0sICR7
ZnVuY3Rpb25OYW1lfSh2bSksICR7Z2xvYmFsT2JqZWN0UHRyfSkiCi0gICAgICAgIDogIkpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgJHtnbG9iYWxPYmplY3RQdHJ9LCAiIC4gR2V0RnVuY3Rpb25MZW5n
dGgoJG9wZXJhdGlvbikgLiAiLCBcIiIgLiAkb3BlcmF0aW9uLT5uYW1lIC4gIlwiX3MsICR7ZnVu
Y3Rpb25OYW1lfSkiOwotfQotCi1zdWIgR2VuZXJhdGVMYXp5UHJvcGVydHlDYWxsYmFja3MKLXsK
LSAgICBteSAoJGludGVyZmFjZSwgJGNvbnRleHQsICRqc1ZhbHVlLCAkY29udGV4dE5hbWVQcmVm
aXgsICRjb25kaXRpb25hbCkgPSBAXzsKLQotICAgIGlmICgkY29uZGl0aW9uYWwpIHsKLSAgICAg
ICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0
aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpOwotICAgIH0KLQot
ICAgIG15ICRjb250ZXh0TmFtZSA9ICRjb250ZXh0LT5uYW1lOwotICAgICRjb250ZXh0TmFtZSA9
fiBzLy0vXy9nOyAjIEZvciBDU1MgcHJvcGVydHkgbmFtZXMKLSAgICBteSAkbmFtZVN1ZmZpeCA9
ICRpbnRlcmZhY2UtPmNsYXNzTmFtZSAuICIke2NvbnRleHROYW1lUHJlZml4fV8ke2NvbnRleHRO
YW1lfSI7Ci0KLSAgICBteSAkdmFsdWVDYWxsYmFja05hbWUgPSAiY3JlYXRlJHtuYW1lU3VmZml4
fSI7Ci0gICAgbXkgJHZtID0gcmVmKCRjb250ZXh0KSBlcSAiSURMQ29uc3RhbnQiID8gIiIgOiAi
IHZtIjsKLSAgICBteSAkdGhpc09iamVjdCA9IHJlZigkY29udGV4dCkgZXEgIklETE9wZXJhdGlv
biIgPyAiIHRoaXNPYmplY3QiIDogIiI7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMg
SlNWYWx1ZSAke3ZhbHVlQ2FsbGJhY2tOYW1lfShWTSYke3ZtfSwgSlNPYmplY3QqJHt0aGlzT2Jq
ZWN0fSlcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuICR7anNWYWx1ZX07XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7Ci0KLSAgICAjIEZJWE1FOiBTaGFyZSB0aGlzIGNhbGxiYWNrcyBiZXR3
ZWVuIGFsbCBpbnRlcmZhY2VzIHRvIHJlZHVjZSBXZWJDb3JlIGJpbmFyeSBzaXplLgotICAgIG15
ICRpc0VuYWJsZWRDYWxsYmFja05hbWUgPSAiaXNFbmFibGVkJHtuYW1lU3VmZml4fSI7Ci0gICAg
cHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgYm9vbCAke2lzRW5hYmxlZENhbGxiYWNrTmFtZX0o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGdsb2Jh
bE9iamVjdCk7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gIiAuIEdl
bmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UsICRjb250ZXh0
LCAiZ2xvYmFsT2JqZWN0IikgLiAiO1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4i
KTsKLQotICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWw7
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwotCi0gICAgcmV0dXJuICgkdmFsdWVDYWxs
YmFja05hbWUsICRpc0VuYWJsZWRDYWxsYmFja05hbWUpOwotfQotCiBzdWIgR2VuZXJhdGVQcm9w
ZXJ0aWVzSGFzaFRhYmxlCiB7Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRjb250ZXh0TmFtZSwgJGhh
c2hLZXlzLCAkaGFzaFNwZWNpYWxzLCAkaGFzaFZhbHVlMSwgJGhhc2hWYWx1ZTIsICRjb25kaXRp
b25hbHMsICRyZWFkV3JpdGVDb25kaXRpb25hbHMpID0gQF87CisgICAgbXkgKCRvYmplY3QsICRp
bnRlcmZhY2UsICRpc0luc3RhbmNlLCAkaGFzaEtleXMsICRoYXNoU3BlY2lhbHMsICRoYXNoVmFs
dWUxLCAkaGFzaFZhbHVlMiwgJGNvbmRpdGlvbmFscywgJHJlYWRXcml0ZUNvbmRpdGlvbmFscywg
JHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9ucywgJHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcykgPSBA
XzsKIAorICAgICMgRklYTUU6IFRoZXNlIHNob3VsZCBiZSBmdW5jdGlvbnMgb24gJGludGVyZmFj
ZS4KICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWU7Ci0gICAg
bXkgJHByb3BlcnR5Q291bnQgPSAwOwotICAgIG15ICRoYXNTZXR0ZXJPclJlYWRvbmx5UHJvcGVy
dGllcyA9ICJmYWxzZSI7Ci0KLSAgICBteSAkaXNDb25zdHJ1Y3RvciA9ICRjb250ZXh0TmFtZSBl
cSBDT05URVhUX05BTUVfQ09OU1RSVUNUT1I7Ci0gICAgbXkgJGlzUHJvdG90eXBlID0gJGNvbnRl
eHROYW1lIGVxIENPTlRFWFRfTkFNRV9QUk9UT1RZUEU7Ci0gICAgbXkgJGlzSW5zdGFuY2UgPSAk
Y29udGV4dE5hbWUgZXEgQ09OVEVYVF9OQU1FX0lOU1RBTkNFOworICAgIG15ICRjbGFzc05hbWUg
PSAiSlMkaW50ZXJmYWNlTmFtZSI7CisgICAgCisgICAgIyAtIEFkZCBhbGwgcHJvcGVydGllcyBp
biBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCisgICAgbXkgJHByb3BlcnR5Q291bnQgPSAkaXNJbnN0
YW5jZSA/IEluc3RhbmNlUHJvcGVydHlDb3VudCgkaW50ZXJmYWNlKSA6IFByb3RvdHlwZVByb3Bl
cnR5Q291bnQoJGludGVyZmFjZSk7CiAKLSAgICBpZiAoJGlzUHJvdG90eXBlICYmIE5lZWRzQ29u
c3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgeworICAgIGlmICghJGlzSW5zdGFuY2UgJiYg
TmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CisgICAgICAgIGRpZSBpZiAh
JHByb3BlcnR5Q291bnQ7CiAgICAgICAgIHB1c2goQCRoYXNoS2V5cywgImNvbnN0cnVjdG9yIik7
CiAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0
b3IiOwogICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7CiAKICAgICAgICAgcHVz
aChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMsICJzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pIik7Ci0g
ICAgICAgICRwcm9wZXJ0eUNvdW50Kys7Ci0gICAgICAgICRoYXNTZXR0ZXJPclJlYWRvbmx5UHJv
cGVydGllcyA9ICJ0cnVlIjsKICAgICB9CiAKKyAgICByZXR1cm4gMCBpZiAhJHByb3BlcnR5Q291
bnQ7CisKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRl
c30pIHsKKyAgICAgICAgbmV4dCBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpOwogICAgICAgICBu
ZXh0IGlmIEF0dHJpYnV0ZVNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRl
KSAhPSAkaXNJbnN0YW5jZTsKLSAgICAgICAgbmV4dCBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMg
fHwgMCkgIT0gJGlzQ29uc3RydWN0b3I7CiAgICAgICAgIG5leHQgaWYgKCRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90ICRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKIAorICAgICAgICAjIEds
b2JhbCBvYmplY3RzIGFkZCBSdW50aW1lRW5hYmxlZCBhdHRyaWJ1dGVzIGFmdGVyIGNyZWF0aW9u
IHNvIGRvIG5vdCBhZGQgdGhlbSB0byB0aGUgc3RhdGljIHRhYmxlLgorICAgICAgICBpZiAoJGlz
SW5zdGFuY2UgJiYgTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwgJGF0dHJpYnV0ZSkpIHsK
KyAgICAgICAgICAgICRwcm9wZXJ0eUNvdW50IC09IDE7CisgICAgICAgICAgICBuZXh0OworICAg
ICAgICB9CisKICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5uYW1lOwogICAgICAgICBw
dXNoKEAkaGFzaEtleXMsICRuYW1lKTsKIAorICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0
dHJpYnV0ZXNGb3JBdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1
c2goQCRoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfSkgeworICAgICAgICAgICAgcHVzaChAJGhhc2hW
YWx1ZTEsICImRE9NSklUQXR0cmlidXRlRm9yIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5uYW1lKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1c2goQCRo
YXNoVmFsdWUxLCAkZ2V0dGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmli
dXRlLT50eXBlKSkgeworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1
c2goQCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgfQorCiAgICAgICAgIG15ICRjb25k
aXRpb25hbCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsK
ICAgICAgICAgJGNvbmRpdGlvbmFscy0+eyRuYW1lfSA9ICRjb25kaXRpb25hbCBpZiAkY29uZGl0
aW9uYWw7CiAgICAgICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsbHlSZWFkV3JpdGV9OwogICAgICAgICAkcmVh
ZFdyaXRlQ29uZGl0aW9uYWxzLT57JG5hbWV9ID0gJHJlYWRXcml0ZUNvbmRpdGlvbmFsIGlmICRy
ZWFkV3JpdGVDb25kaXRpb25hbDsKIAotICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGlu
dGVyZmFjZSwgJGF0dHJpYnV0ZSkpIHsKLSAgICAgICAgICAgIGFzc2VydCgiVXNpbmcgRE9NSklU
IHdpdGggcnVudGltZSBlbmFibGVkIGF0dHJpYnV0ZXMgaXMgbm90IHlldCBzdXBwb3J0ZWQgKHVz
ZWQgb24gdGhlICcke25hbWV9JyBhdHRyaWJ1dGUgb2YgJyR7aW50ZXJmYWNlTmFtZX0nKS4iKSBp
ZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9OwotICAgICAgICAgICAg
YXNzZXJ0KCJVc2luZyBDb25kaXRpb25hbGx5UmVhZFdyaXRlIHdpdGggcnVudGltZSBlbmFibGVk
IGF0dHJpYnV0ZXMgaXMgbm90IHlldCBzdXBwb3J0ZWQgKHVzZWQgb24gdGhlICcke25hbWV9JyBh
dHRyaWJ1dGUgb2YgJyR7aW50ZXJmYWNlTmFtZX0nKS4iKSBpZiAkcmVhZFdyaXRlQ29uZGl0aW9u
YWw7Ci0KLSAgICAgICAgICAgIG15ICRqc1ZhbHVlID0gR2V0QXR0cmlidXRlSlNWYWx1ZSgkaW50
ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIG15ICgkdmFsdWVDYWxsYmFja05hbWUs
ICRpc0VuYWJsZWRDYWxsYmFja05hbWUpID0gR2VuZXJhdGVMYXp5UHJvcGVydHlDYWxsYmFja3Mo
JGludGVyZmFjZSwgJGF0dHJpYnV0ZSwgJGpzVmFsdWUsICRjb250ZXh0TmFtZSwgJGNvbmRpdGlv
bmFsKTsKLSAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAkdmFsdWVDYWxsYmFja05hbWUp
OwotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRpc0VuYWJsZWRDYWxsYmFja05hbWUp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsIEdldEF0
dHJpYnV0ZUdldHRlcigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKSk7Ci0gICAgICAgICAgICBwdXNo
KEAkaGFzaFZhbHVlMiwgR2V0QXR0cmlidXRlU2V0dGVyKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUp
KTsKKyAgICAgICAgbXkgJG5lZWRzUnVudGltZUNoZWNrID0gTmVlZHNSdW50aW1lQ2hlY2soJGlu
dGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIG15ICRuZWVkc1J1bnRpbWVSZWFkV3JpdGVD
aGVjayA9IE5lZWRzUnVudGltZVJlYWRXcml0ZUNoZWNrKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUp
OworICAgICAgICAKKyAgICAgICAgaWYgKCRuZWVkc1J1bnRpbWVDaGVjayAmJiAkbmVlZHNSdW50
aW1lUmVhZFdyaXRlQ2hlY2spIHsKKyAgICAgICAgICAgIGRpZSAiQmVpbmcgYm90aCBydW50aW1l
IGVuYWJsZWQgYW5kIHJ1bnRpbWUgY29uZGl0aW9uYWxseSByZWFkLXdyaXRlIGlzIG5vdCB5ZXQg
c3VwcG9ydGVkICh1c2VkIG9uIHRoZSAnJHtuYW1lfScgYXR0cmlidXRlIG9mICcke2ludGVyZmFj
ZU5hbWV9JykuXG4iOwogICAgICAgICB9CiAKLSAgICAgICAgcHVzaChAJGhhc2hTcGVjaWFscywg
U3RyaW5naWZ5SlNDQXR0cmlidXRlcyhHZXRKU0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRlKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpKSk7Ci0gICAgICAgICRwcm9wZXJ0eUNvdW50Kys7Ci0gICAgICAg
ICRoYXNTZXR0ZXJPclJlYWRvbmx5UHJvcGVydGllcyA9ICJ0cnVlIjsKKyAgICAgICAgaWYgKCRu
ZWVkc1J1bnRpbWVDaGVjayB8fCAkbmVlZHNSdW50aW1lUmVhZFdyaXRlQ2hlY2spIHsKKyAgICAg
ICAgICAgIHB1c2goQCRydW50aW1lRW5hYmxlZEF0dHJpYnV0ZXMsICRhdHRyaWJ1dGUpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRpbnRlcmZhY2Ut
Pm9wZXJhdGlvbnN9KSB7Ci0gICAgICAgIG5leHQgaWYgJGludGVyZmFjZS0+aXNDYWxsYmFjazsK
LSAgICAgICAgbmV4dCBpZiAoJG9wZXJhdGlvbi0+aXNTdGF0aWMgfHwgMCkgIT0gJGlzQ29uc3Ry
dWN0b3I7CiAgICAgICAgIG5leHQgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+
e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90ICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRl
cy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKKyAgICAgICAgbmV4dCBpZiAoJG9wZXJhdGlvbi0+aXNT
dGF0aWMpOwogICAgICAgICBuZXh0IGlmICRvcGVyYXRpb24tPntvdmVybG9hZEluZGV4fSAmJiAk
b3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICBuZXh0IGlmIE9wZXJhdGlv
blNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSAhPSAkaXNJbnN0YW5j
ZTsKICAgICAgICAgbmV4dCBpZiAkb3BlcmF0aW9uLT5uYW1lIGVxICJbU3ltYm9sLkl0ZXJhdG9y
XSI7CiAKKyAgICAgICAgIyBHbG9iYWwgb2JqZWN0cyBhZGQgUnVudGltZUVuYWJsZWQgb3BlcmF0
aW9ucyBhZnRlciBjcmVhdGlvbiBzbyBkbyBub3QgYWRkIHRoZW0gdG8gdGhlIHN0YXRpYyB0YWJs
ZS4KKyAgICAgICAgaWYgKCRpc0luc3RhbmNlICYmIE5lZWRzUnVudGltZUNoZWNrKCRpbnRlcmZh
Y2UsICRvcGVyYXRpb24pKSB7CisgICAgICAgICAgICAkcHJvcGVydHlDb3VudCAtPSAxOworICAg
ICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorCiAgICAgICAgIG15ICRuYW1lID0gJG9wZXJhdGlv
bi0+bmFtZTsKICAgICAgICAgcHVzaChAJGhhc2hLZXlzLCAkbmFtZSk7CiAKLSAgICAgICAgbXkg
JGNvbmRpdGlvbmFsID0gR2V0Q29uZGl0aW9uYWxGb3JPcGVyYXRpb25Db25zaWRlcmluZ092ZXJs
b2Fkcygkb3BlcmF0aW9uKTsKLSAgICAgICAgJGNvbmRpdGlvbmFscy0+eyRuYW1lfSA9ICRjb25k
aXRpb25hbCBpZiAkY29uZGl0aW9uYWw7CisgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSBHZXRG
dW5jdGlvbk5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbik7CisgICAgICAg
IHB1c2goQCRoYXNoVmFsdWUxLCAkZnVuY3Rpb25OYW1lKTsKIAotICAgICAgICBpZiAoTmVlZHNS
dW50aW1lQ2hlY2soJGludGVyZmFjZSwgJG9wZXJhdGlvbikpIHsKLSAgICAgICAgICAgIGFzc2Vy
dCgiVXNpbmcgRE9NSklUIHdpdGggcnVudGltZSBlbmFibGVkIG9wZXJhdGlvbnMgaXMgbm90IHll
dCBzdXBwb3J0ZWQgKHVzZWQgb24gdGhlICcke25hbWV9JyBvcGVyYXRpb24gb2YgJyR7aW50ZXJm
YWNlTmFtZX0nKS4iKSBpZiAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9
OworICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkb3BlcmF0
aW9uKTsKIAotICAgICAgICAgICAgbXkgJGpzVmFsdWUgPSBHZXRPcGVyYXRpb25KU1ZhbHVlKCRp
bnRlcmZhY2UsICRvcGVyYXRpb24sICJ0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIpOwotICAg
ICAgICAgICAgbXkgKCR2YWx1ZUNhbGxiYWNrTmFtZSwgJGlzRW5hYmxlZENhbGxiYWNrTmFtZSkg
PSBHZW5lcmF0ZUxhenlQcm9wZXJ0eUNhbGxiYWNrcygkaW50ZXJmYWNlLCAkb3BlcmF0aW9uLCAk
anNWYWx1ZSwgJGNvbnRleHROYW1lLCAkY29uZGl0aW9uYWwpOwotICAgICAgICAgICAgcHVzaChA
JGhhc2hWYWx1ZTEsICR2YWx1ZUNhbGxiYWNrTmFtZSk7Ci0gICAgICAgICAgICBwdXNoKEAkaGFz
aFZhbHVlMiwgJGlzRW5hYmxlZENhbGxiYWNrTmFtZSk7CisgICAgICAgIGlmICgkb3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9KSB7CisgICAgICAgICAgICBwdXNoKEAkaGFz
aFZhbHVlMiwgIiZET01KSVRTaWduYXR1cmVGb3IiIC4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSAu
ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRvcGVyYXRpb24tPm5hbWUpKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCBHZXRGdW5jdGlvbk5hbWUo
JGludGVyZmFjZSwgJGludGVyZmFjZS0+Y2xhc3NOYW1lLCAkb3BlcmF0aW9uKSk7Ci0gICAgICAg
ICAgICBteSAkZnVuY3Rpb25TaWduYXR1cmUgPSAiJkRPTUpJVFNpZ25hdHVyZUZvciIgLiAkaW50
ZXJmYWNlLT50eXBlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG5hbWUpOwot
ICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0RPTUpJVH0gPyAkZnVuY3Rpb25TaWduYXR1cmUgOiBHZXRGdW5jdGlvbkxlbmd0aCgk
b3BlcmF0aW9uKSk7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVu
Z3RoKTsKICAgICAgICAgfQogCi0gICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMsIFN0cmluZ2lm
eUpTQ0F0dHJpYnV0ZXMoQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgkaW50ZXJmYWNlLCAkb3BlcmF0
aW9uKSkpOwotICAgICAgICAkcHJvcGVydHlDb3VudCsrOwotICAgIH0KKyAgICAgICAgcHVzaChA
JGhhc2hTcGVjaWFscywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgkaW50ZXJmYWNlLCAkb3BlcmF0
aW9uKSk7CiAKLSAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskaW50ZXJmYWNlLT5jb25zdGFu
dHN9KSB7Ci0gICAgICAgIG5leHQgaWYgJGlzSW5zdGFuY2U7Ci0KLSAgICAgICAgbXkgJG5hbWUg
PSAkY29uc3RhbnQtPm5hbWU7Ci0gICAgICAgIHB1c2goQCRoYXNoS2V5cywgJG5hbWUpOwotCi0g
ICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGNvbnN0YW50LT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntJbXBsZW1lbnRlZEJ5fTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1lbnRlZEJ5
fS5oIn0gPSAxIGlmICRpbXBsZW1lbnRlZEJ5OwotICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAk
Y29uc3RhbnQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsKKyAgICAgICAgbXkg
JGNvbmRpdGlvbmFsID0gR2V0Q29uZGl0aW9uYWxGb3JPcGVyYXRpb25Db25zaWRlcmluZ092ZXJs
b2Fkcygkb3BlcmF0aW9uKTsKICAgICAgICAgJGNvbmRpdGlvbmFscy0+eyRuYW1lfSA9ICRjb25k
aXRpb25hbCBpZiAkY29uZGl0aW9uYWw7CiAKLSAgICAgICAgbXkgJHNwZWNpYWwgPSAiIjsKLSAg
ICAgICAgaWYgKE5lZWRzUnVudGltZUNoZWNrKCRpbnRlcmZhY2UsICRjb25zdGFudCkpIHsKLSAg
ICAgICAgICAgIG15ICRqc1ZhbHVlID0gImpzTnVtYmVyKCIgLiAkY29uc3RhbnQtPnZhbHVlIC4g
IikiOwotICAgICAgICAgICAgbXkgKCR2YWx1ZUNhbGxiYWNrTmFtZSwgJGlzRW5hYmxlZENhbGxi
YWNrTmFtZSkgPSBHZW5lcmF0ZUxhenlQcm9wZXJ0eUNhbGxiYWNrcygkaW50ZXJmYWNlLCAkY29u
c3RhbnQsICRqc1ZhbHVlLCAkY29udGV4dE5hbWUsICRjb25kaXRpb25hbCk7Ci0gICAgICAgICAg
ICBwdXNoKEAkaGFzaFZhbHVlMSwgJHZhbHVlQ2FsbGJhY2tOYW1lKTsKLSAgICAgICAgICAgIHB1
c2goQCRoYXNoVmFsdWUyLCAkaXNFbmFibGVkQ2FsbGJhY2tOYW1lKTsKLSAgICAgICAgICAgIHB1
c2goQCRoYXNoU3BlY2lhbHMsICJKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpQcm9wZXJ0eUNhbGxiYWNrIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNo
KEAkaGFzaFZhbHVlMSwgJGNvbnN0YW50LT52YWx1ZSk7Ci0gICAgICAgICAgICBwdXNoKEAkaGFz
aFZhbHVlMiwgIjAiKTsKLSAgICAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMsICJKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIiKTsKKyAgICAg
ICAgaWYgKE5lZWRzUnVudGltZUNoZWNrKCRpbnRlcmZhY2UsICRvcGVyYXRpb24pKSB7CisgICAg
ICAgICAgICBwdXNoKEAkcnVudGltZUVuYWJsZWRPcGVyYXRpb25zLCAkb3BlcmF0aW9uKTsKICAg
ICAgICAgfQotCi0gICAgICAgICRwcm9wZXJ0eUNvdW50Kys7Ci0gICAgICAgICRoYXNTZXR0ZXJP
clJlYWRvbmx5UHJvcGVydGllcyA9ICJ0cnVlIjsKICAgICB9CiAKLSAgICByZXR1cm4gKCRwcm9w
ZXJ0eUNvdW50LCAkaGFzU2V0dGVyT3JSZWFkb25seVByb3BlcnRpZXMpOworICAgIHJldHVybiAk
cHJvcGVydHlDb3VudDsKIH0KIAogIyBUaGlzIGNvbXB1dGVzIGFuIGVmZmVjdGl2ZSBvdmVybG9h
ZCBzZXQgZm9yIGEgZ2l2ZW4gb3BlcmF0aW9uIC8gY29uc3RydWN0b3IsCkBAIC00MDY2LDcgKzM5
ODcsNyBAQCBzdWIgR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmcKICAgICAg
ICAgICAgIHB1c2goQGNvbmp1bmN0cywgIihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4g
JGdsb2JhbE9iamVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJl
Q29udGV4dCgpIgogICAgICAgICAgICAgICAgIC4gInx8IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KCIgLiAkZ2xvYmFsT2JqZWN0UHRyIC4gIiktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
YWxsb3dzTWVkaWFEZXZpY2VzKCkpIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigiIC4gJGdsb2JhbE9i
amVjdFB0ciAuICIpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgp
Iik7CisgICAgICAgICAgICBwdXNoKEBjb25qdW5jdHMsICJqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVD
b250ZXh0KCkiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDA3OSw3ICs0MDAwLDcgQEAgc3Vi
IEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nCiAKICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIkRPTVdyYXBwZXJXb3JsZC5oIik7CiAKLSAgICAgICAgcHVzaChAY29uanVu
Y3RzLCAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oIiAuICRnbG9iYWxPYmplY3RQdHIgLiAi
KS0+d29ybGQoKS4iIC4gVG9NZXRob2ROYW1lKCRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntFbmFibGVkRm9yV29ybGR9KSAuICIoKSIpOworICAgICAgICBwdXNoKEBjb25qdW5jdHMsICJ3
b3JsZEZvckRPTU9iamVjdCgqdGhpcykuIiAuIFRvTWV0aG9kTmFtZSgkY29udGV4dC0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEZvcldvcmxkfSkgLiAiKCkiKTsKICAgICB9CiAKICAgICBp
ZiAoJGNvbnRleHQtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRCeVNldHRpbmd9KSB7CkBA
IC00NDIzLDcxICs0MzQ0LDI2OSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAg
R2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbihcQGltcGxDb250ZW50LCAkY2xhc3NOYW1lLCAk
aW50ZXJmYWNlKSBpZiAhSGVhZGVyTmVlZHNQcm90b3R5cGVEZWNsYXJhdGlvbigkaW50ZXJmYWNl
KTsKIAorICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbihcQGltcGxDb250ZW50LCAk
Y2xhc3NOYW1lLCAkaW50ZXJmYWNlKSBpZiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3R9OworCisgICAgbXkgQGhhc2hLZXlzID0gKCk7Cisg
ICAgbXkgQGhhc2hWYWx1ZTEgPSAoKTsKKyAgICBteSBAaGFzaFZhbHVlMiA9ICgpOworICAgIG15
IEBoYXNoU3BlY2lhbHMgPSAoKTsKKyAgICBteSAlY29uZGl0aW9uYWxzID0gKCk7CisgICAgbXkg
JXJlYWRXcml0ZUNvbmRpdGlvbmFscyA9ICgpOworICAgIG15ICRoYXNoTmFtZSA9ICRjbGFzc05h
bWUgLiAiVGFibGUiOworICAgIG15IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsKKyAg
ICBteSBAcnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzID0gKCk7CisgICAgbXkgQHJ1bnRpbWVFbmFi
bGVkQ29uc3RhbnRzID0gKCk7CisKKyAgICAjIEdlbmVyYXRlIGhhc2ggdGFibGUgZm9yIHByb3Bl
cnRpZXMgb24gdGhlIGluc3RhbmNlLgorICAgIG15ICRudW1JbnN0YW5jZVByb3BlcnRpZXMgPSBH
ZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUoJG9iamVjdCwgJGludGVyZmFjZSwgMSwgXEBoYXNo
S2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRp
dGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsIFxAcnVudGltZUVuYWJsZWRPcGVyYXRp
b25zLCBcQHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcyk7CisgICAgJG9iamVjdC0+R2VuZXJhdGVI
YXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAkbnVtSW5zdGFuY2VQcm9wZXJ0aWVzLCBc
QGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwl
Y29uZGl0aW9uYWxzLCBcJXJlYWRXcml0ZUNvbmRpdGlvbmFscywgMCkgaWYgJG51bUluc3RhbmNl
UHJvcGVydGllcyA+IDA7CisKICAgICAjIC0gQWRkIGFsbCBpbnRlcmZhY2Ugb2JqZWN0IChha2Eg
Y29uc3RydWN0b3IpIHByb3BlcnRpZXMgKGNvbnN0YW50cywgc3RhdGljIGF0dHJpYnV0ZXMsIHN0
YXRpYyBvcGVyYXRpb25zKS4KICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0fSkgewotICAgICAgICBHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVjbGFyYXRpb24oXEBpbXBsQ29udGVudCwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSk7Cisg
ICAgICAgIG15ICRoYXNoU2l6ZSA9IDA7CisgICAgICAgIG15ICRoYXNoTmFtZSA9ICRjbGFzc05h
bWUgLiAiQ29uc3RydWN0b3JUYWJsZSI7CisKKyAgICAgICAgbXkgQGhhc2hLZXlzID0gKCk7Cisg
ICAgICAgIG15IEBoYXNoVmFsdWUxID0gKCk7CisgICAgICAgIG15IEBoYXNoVmFsdWUyID0gKCk7
CisgICAgICAgIG15IEBoYXNoU3BlY2lhbHMgPSAoKTsKKyAgICAgICAgbXkgJWNvbmRpdGlvbmFs
cyA9ICgpOworICAgICAgICBteSAlcmVhZFdyaXRlQ29uZGl0aW9uYWxzID0gKCk7CisKKyAgICAg
ICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgeworICAg
ICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CisgICAgICAgICAgICBwdXNoKEBo
YXNoS2V5cywgJG5hbWUpOworICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGNvbnN0YW50
LT52YWx1ZSk7CisgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAg
ICAgcHVzaChAaGFzaFNwZWNpYWxzLCAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0
ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyIik7CisKKyAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5
ID0gJGNvbnN0YW50LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEJ5fTsKKyAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMSBpZiAkaW1wbGVt
ZW50ZWRCeTsKKworICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGNvbnN0YW50LT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CisgICAgICAgICAgICAkY29uZGl0aW9uYWxz
eyRuYW1lfSA9ICRjb25kaXRpb25hbCBpZiAkY29uZGl0aW9uYWw7CisKKyAgICAgICAgICAgIGlm
IChOZWVkc1J1bnRpbWVDaGVjaygkaW50ZXJmYWNlLCAkY29uc3RhbnQpKSB7CisgICAgICAgICAg
ICAgICAgcHVzaChAcnVudGltZUVuYWJsZWRDb25zdGFudHMsICRjb25zdGFudCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICRoYXNoU2l6ZSsrOworICAgICAgICB9CisKKyAgICAgICAg
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAg
ICAgICAgICBuZXh0IHVubGVzcyAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpOworICAgICAgICAgICAg
bXkgJG5hbWUgPSAkYXR0cmlidXRlLT5uYW1lOworICAgICAgICAgICAgcHVzaChAaGFzaEtleXMs
ICRuYW1lKTsKKworICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7CisgICAgICAgICAgICBw
dXNoKEBzcGVjaWFscywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUiKSBpZiBJ
c0xlZ2FjeVVuZm9yZ2VhYmxlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAg
cHVzaChAc3BlY2lhbHMsICJKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSIpIGlmIElz
UmVhZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSIpIGlmIElzQWNjZWxlcmF0ZWRET01BdHRy
aWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1
dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH07CisgICAgICAgICAgICBteSAkc3BlY2lh
bCA9ICJzdGF0aWNfY2FzdDx1bnNpZ25lZD4oIiAuICgoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIg
fCAiLCBAc3BlY2lhbHMpIDogIjAiKSAuICIpIjsKKyAgICAgICAgICAgIHB1c2goQGhhc2hTcGVj
aWFscywgJHNwZWNpYWwpOworCisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57RE9NSklUfSkgeworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEs
ICImRE9NSklUQXR0cmlidXRlRm9yIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5uYW1lKSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1l
KCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1
c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hW
YWx1ZTIsICIwIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG15ICRz
ZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRh
dHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CisgICAgICAgICAgICAkY29uZGl0
aW9uYWxzeyRuYW1lfSA9ICRjb25kaXRpb25hbCBpZiAkY29uZGl0aW9uYWw7CisKKyAgICAgICAg
ICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0NvbmRpdGlvbmFsbHlSZWFkV3JpdGV9OworICAgICAgICAgICAgJHJlYWRXcml0ZUNv
bmRpdGlvbmFsc3skbmFtZX0gPSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwgaWYgJHJlYWRXcml0ZUNv
bmRpdGlvbmFsOworCisgICAgICAgICAgICAkaGFzaFNpemUrKzsKKyAgICAgICAgfQorCisgICAg
ICAgIGZvcmVhY2ggbXkgJG9wZXJhdGlvbiAoQHskaW50ZXJmYWNlLT5vcGVyYXRpb25zfSkgewor
ICAgICAgICAgICAgbmV4dCB1bmxlc3MgKCRvcGVyYXRpb24tPmlzU3RhdGljKTsKKyAgICAgICAg
ICAgIG5leHQgaWYgJG9wZXJhdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRvcGVyYXRpb24tPntv
dmVybG9hZEluZGV4fSA+IDE7CisgICAgICAgICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb24tPm5h
bWU7CisgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgJG5hbWUpOworCisgICAgICAgICAgICBt
eSAkZnVuY3Rpb25OYW1lID0gR2V0RnVuY3Rpb25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRvcGVyYXRpb24pOworICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGZ1bmN0aW9uTmFt
ZSk7CisKKyAgICAgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9IEdldEZ1bmN0aW9uTGVuZ3Ro
KCRvcGVyYXRpb24pOworICAgICAgICAgICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0RPTUpJVH0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiRE9N
SklURnVuY3Rpb25Gb3IiIC4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRvcGVyYXRpb24tPm5hbWUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCBDb21wdXRlRnVuY3Rp
b25TcGVjaWFsKCRpbnRlcmZhY2UsICRvcGVyYXRpb24pKTsKKworICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsID0gJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9
OworICAgICAgICAgICAgJGNvbmRpdGlvbmFsc3skbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNv
bmRpdGlvbmFsOworCisgICAgICAgICAgICAkaGFzaFNpemUrKzsKKyAgICAgICAgfQorCisgICAg
ICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxlKCRjbGFzc05hbWUsICRoYXNoTmFtZSwgJGhh
c2hTaXplLCBcQGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hW
YWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBcJXJlYWRXcml0ZUNvbmRpdGlvbmFscywgMSkgaWYgJGhh
c2hTaXplID4gMDsKKworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGNvZGVHZW5lcmF0b3It
PkdlbmVyYXRlQ29tcGlsZVRpbWVDaGVja0ZvckVudW1zSWZOZWVkZWQoJGludGVyZmFjZSkpOwor
CisgICAgICAgIG15ICRwcm90b0NsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwor
ICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbnMoXEBpbXBsQ29udGVudCwgJGNs
YXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZh
Y2UpOwogCi0gICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucyhcQGltcGxDb250
ZW50LCAkY2xhc3NOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2UpOwogICAg
ICAgICBteSAkbGVnYWN5RmFjdG9yeUZ1bmN0aW9uID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57TGVnYWN5RmFjdG9yeUZ1bmN0aW9ufTsKLSAgICAgICAgR2VuZXJhdGVDb25zdHJ1
Y3RvckRlZmluaXRpb25zKFxAaW1wbENvbnRlbnQsICRjbGFzc05hbWUsICRsZWdhY3lGYWN0b3J5
RnVuY3Rpb24sICRpbnRlcmZhY2UsIDEpIGlmICRsZWdhY3lGYWN0b3J5RnVuY3Rpb247CisgICAg
ICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucyhcQGltcGxDb250ZW50LCAkY2xhc3NO
YW1lLCAkcHJvdG9DbGFzc05hbWUsICRsZWdhY3lGYWN0b3J5RnVuY3Rpb24sICRpbnRlcmZhY2Us
ICJHZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uIikgaWYgJGxlZ2FjeUZhY3RvcnlGdW5j
dGlvbjsKKyAgICB9CisKKyAgICAjIC0gQWRkIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIHRvIGEg
aGFzaHRhYmxlIGRlZmluaXRpb24KKworICAgICRoYXNoTmFtZSA9ICRjbGFzc05hbWUgLiAiUHJv
dG90eXBlVGFibGUiOworCisgICAgQGhhc2hLZXlzID0gKCk7CisgICAgQGhhc2hWYWx1ZTEgPSAo
KTsKKyAgICBAaGFzaFZhbHVlMiA9ICgpOworICAgIEBoYXNoU3BlY2lhbHMgPSAoKTsKKyAgICAl
Y29uZGl0aW9uYWxzID0gKCk7CisgICAgJXJlYWRXcml0ZUNvbmRpdGlvbmFscyA9ICgpOworICAg
IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsKKyAgICBAcnVudGltZUVuYWJsZWRBdHRy
aWJ1dGVzID0gKCk7CisKKyAgICAjIEdlbmVyYXRlIGhhc2ggdGFibGUgZm9yIHByb3BlcnRpZXMg
b24gdGhlIHByb3RvdHlwZS4KKyAgICBteSAkbnVtUHJvdG90eXBlUHJvcGVydGllcyA9IEdlbmVy
YXRlUHJvcGVydGllc0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50ZXJmYWNlLCAwLAorICAgICAgICBc
QGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywKKyAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hW
YWx1ZTIsCisgICAgICAgIFwlY29uZGl0aW9uYWxzLCBcJXJlYWRXcml0ZUNvbmRpdGlvbmFscywK
KyAgICAgICAgXEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMsIFxAcnVudGltZUVuYWJsZWRBdHRy
aWJ1dGVzKTsKKworICAgIG15ICRoYXNoU2l6ZSA9ICRudW1Qcm90b3R5cGVQcm9wZXJ0aWVzOwor
CisgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgewor
ICAgICAgICBteSAkbmFtZSA9ICRjb25zdGFudC0+bmFtZTsKKworICAgICAgICBwdXNoKEBoYXNo
S2V5cywgJG5hbWUpOworICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkY29uc3RhbnQtPnZhbHVl
KTsKKyAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgcHVzaChAaGFzaFNw
ZWNpYWxzLCAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJ
bnRlZ2VyIik7CisKKyAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGNvbnN0YW50LT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CisgICAgICAgICRjb25kaXRpb25hbHN7JG5hbWV9
ID0gJGNvbmRpdGlvbmFsIGlmICRjb25kaXRpb25hbDsKKworICAgICAgICAkaGFzaFNpemUrKzsK
ICAgICB9CiAKICAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7Ci0gICAg
ICAgIG15ICRwcm90b3R5cGVIYXNoVGFibGUgPSBHZW5lcmF0ZUhhc2hUYWJsZSgkaW50ZXJmYWNl
LCBDT05URVhUX05BTUVfUFJPVE9UWVBFKTsKKyAgICAgICAgbXkgJGp1c3RHZW5lcmF0ZVZhbHVl
QXJyYXkgPSAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CisKKyAgICAgICAgJG9iamVj
dC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAkaGFzaFNpemUsIFxA
aGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwgXCVj
b25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRlVmFsdWVB
cnJheSk7CisKKyAgICAgICAgbXkgJHByb3RvdHlwZUhhc2hUYWJsZSA9ICRqdXN0R2VuZXJhdGVW
YWx1ZUFycmF5ID8gIm51bGxwdHIiIDogIiYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSI7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNlOjpz
X2luZm8sICR7cHJvdG90eXBlSGFzaFRhYmxlfSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RSgke2NsYXNzTmFtZX1Qcm90b3R5cGUpIH07XG5cbiIpOwogCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7XG4iKTsKKyAgICB9
CisKKyAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAm
JiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmlzTmFtZXNw
YWNlT2JqZWN0KSB7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCksICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7XG4iKTsKIAotICAgICAgICBpZiAoJHByb3RvdHlwZUhhc2hU
YWJsZSBuZSAibnVsbHB0ciIgJiYgIUlzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpKSB7Ci0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXMo
dm0sICR7Y2xhc3NOYW1lfTo6aW5mbygpLCAke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZVZhbHVl
cywgKnRoaXMpO1xuIik7CisgICAgICAgIG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBA
cnVudGltZUVuYWJsZWRPcGVyYXRpb25zOworICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFBy
b3BlcnRpZXMsIEBydW50aW1lRW5hYmxlZEF0dHJpYnV0ZXMpOworICAgICAgICBwdXNoKEBydW50
aW1lRW5hYmxlZFByb3BlcnRpZXMsIEBydW50aW1lRW5hYmxlZENvbnN0YW50cyk7CisKKyAgICAg
ICAgaWYgKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNl
O1xuIik7CiAgICAgICAgIH0KIAotICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGlu
dGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uT3JB
dHRyaWJ1dGUgKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nKCRvcGVyYXRpb25PckF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwor
ICAgICAgICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRl
UnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UsICRvcGVyYXRpb25PckF0
dHJpYnV0ZSwgImdsb2JhbE9iamVjdCgpIik7CisgICAgICAgICAgICBteSAkbmFtZSA9ICRvcGVy
YXRpb25PckF0dHJpYnV0ZS0+bmFtZTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9w
ZXJ0aWVzID0gdHJ1ZTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFZNOjpEZWxldGVQ
cm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3Jl
Q29uZmlndXJhYmxlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2Vu
ZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIH0KKworICAgICAgICBmb3Jl
YWNoIG15ICRhdHRyaWJ1dGUgKEBydW50aW1lRW5hYmxlZEF0dHJpYnV0ZXMpIHsKICAgICAgICAg
ICAgIGlmIChOZWVkc1J1bnRpbWVSZWFkV3JpdGVDaGVjaygkaW50ZXJmYWNlLCAkYXR0cmlidXRl
KSkgewogICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJXZWJDb3JlSlNDbGllbnRE
YXRhLmgiKTsKICAgICAgICAgICAgICAgICBteSAkcnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3Ry
aW5nID0gR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSwg
JGF0dHJpYnV0ZSwgImdsb2JhbE9iamVjdCgpIik7CiAKICAgICAgICAgICAgICAgICBteSAkYXR0
cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPm5hbWU7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCJC
ZWluZyBib3RoIHJ1bnRpbWUgZW5hYmxlZCBhbmQgcnVudGltZSBjb25kaXRpb25hbGx5IHJlYWQt
d3JpdGUgaXMgbm90IHlldCBzdXBwb3J0ZWQgKHVzZWQgb24gdGhlICcke2F0dHJpYnV0ZU5hbWV9
JyBhdHRyaWJ1dGUgb2YgJyR7dmlzaWJsZUludGVyZmFjZU5hbWV9JykuIikgaWYgTmVlZHNSdW50
aW1lQ2hlY2soJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJGdl
dHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0
dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9ICJudWxscHRyIjsKKyAgICAg
ICAgICAgICAgICBteSAkanNjQXR0cmlidXRlcyA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1
dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAKICAgICAgICAgICAgICAgICBteSAkY29uZGl0
aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
YXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIFNoYWRvdyByZWFkLXdyaXRlIHZhcmlhbnQg
ZnJvbSB0aGUgc3RhdGljIGhhc2ggdGFibGUuXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAvLyBBZGRpbmcgYmFjayBhdHRyaWJ1dGUsIGJ1dCBhcyByZWFkb25s
eSwgYWZ0ZXIgcmVtb3ZpbmcgdGhlIHJlYWQtd3JpdGUgdmFyaWFudCBhYm92ZS4gXG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoISR7cnVudGltZUVuYWJs
ZUNvbmRpdGlvbmFsU3RyaW5nfSlcbiIpOwotCi0gICAgICAgICAgICAgICAgbXkgJHByb3BlcnR5
TmFtZSA9ICJzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS4ke2F0dHJpYnV0ZU5hbWV9UHVibGljTmFtZSgpIjsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2bSwgJHtj
bGFzc05hbWV9OjppbmZvKCksICR7cHJvcGVydHlOYW1lfSwgaW5mbygpLT5zdGF0aWNQcm9wSGFz
aFRhYmxlLT5lbnRyeSgke3Byb3BlcnR5TmFtZX0pLT5tYWtlUmVhZE9ubHlDb3B5KCksICp0aGlz
KTtcbiIpOworICAgICAgICAgICAgICAgIGlmIChJc0FjY2VsZXJhdGVkRE9NQXR0cmlidXRlKCRp
bnRlcmZhY2UsICRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRjbGFzc0Zv
clRoaXMgPSAiJHtjbGFzc05hbWV9OjppbmZvKCkiOworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLiIg
LiAkYXR0cmlidXRlTmFtZSAuICJQdWJsaWNOYW1lKCksIEpTQzo6RE9NQXR0cmlidXRlR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsICRzZXR0ZXIsIEpTQzo6RE9NQXR0cmlidXRlQW5u
b3RhdGlvbiB7ICRjbGFzc0ZvclRoaXMsIG51bGxwdHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCgiQ3VzdG9tR2V0dGVyU2V0dGVyIGlzIG5vdCBhbGxvd2Vk
IGZvciBET01BdHRyaWJ1dGUuIERPTUF0dHJpYnV0ZUdldHRlclNldHRlciBtdXN0IGJlIHVzZWQu
IikgaWYgSXNBY2NlbGVyYXRlZERPTUF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVj
dEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpLT5idWlsdGluTmFtZXMoKS4iIC4gJGF0dHJpYnV0ZU5hbWUgLiAiUHVibGljTmFtZSgp
LCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwgJHNldHRlciksIGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYg
KEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgp
LT5pc0RpY3Rpb25hcnkoKSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTtcbiIpOworICAgICAgICB9CisKKyAg
ICAgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9KSB7
CisgICAgICAgICAgICBuZXh0IHVubGVzcyAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57UHJpdmF0ZUlkZW50aWZpZXJ9KTsKKyAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiKTsKKyAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRvcGVyYXRpb24p
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmlu
Z31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuIiAuICRvcGVyYXRpb24tPm5hbWUgLiAiUHJpdmF0
ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5n
KCksICIgLiBHZXRGdW5jdGlvbk5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlv
bikgLiAiKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIH0KKwogICAgICAg
ICBpZiAoSW50ZXJmYWNlTmVlZHNJdGVyYXRvcigkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4iKTsKICAg
ICAgICAgICAgIGlmIChJc0tleVZhbHVlSXRlcmFibGVJbnRlcmZhY2UoJGludGVyZmFjZSkgb3Ig
JGludGVyZmFjZS0+bWFwTGlrZSBvciAkaW50ZXJmYWNlLT5zZXRMaWtlKSB7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byYgZW50cmllcyA9IHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCk7XG4iKTsKLSAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBu
dWxscHRyLCBlbnRyaWVzLCAqaW5mbygpLT5zdGF0aWNQcm9wSGFzaFRhYmxlLT5lbnRyeShlbnRy
aWVzKSwgKnRoaXMpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJh
dG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIGVudHJpZXMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
aXRlcmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2Jq
ZWN0KCktPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTtcbiIpOworICAgICAgICAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCI8SmF2YVNjcmlwdENvcmUvQXJyYXlQcm90b3R5cGUuaD4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnbG9iYWxPYmplY3QoKS0+YXJyYXlQcm90
b3R5cGUoKS0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52
YWx1ZXNQcml2YXRlTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhZGRWYWx1ZUl0ZXJhYmxlTWV0aG9kcygqZ2xv
YmFsT2JqZWN0KCksICp0aGlzKTtcbiIpIGlmICRpbnRlcmZhY2UtPml0ZXJhYmxlIGFuZCAhSXNL
ZXlWYWx1ZUl0ZXJhYmxlSW50ZXJmYWNlKCRpbnRlcmZhY2UpOwogCiAgICAgICAgIGFkZFVuc2Nv
cGFibGVQcm9wZXJ0aWVzKCRpbnRlcmZhY2UpOworICAgIH0KIAotICAgICAgICBhc3NlcnQoIkpT
Q19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmluZ3MgdHdv
IG9yIG1vcmUgY2hhcmFjdGVycyBsb25nLiIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFjZU5h
bWUpIDwgMjsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNDX1RPX1NUUklOR19U
QUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsKLQotICAgICAgICBHZW5lcmF0ZVByaXZhdGVJ
ZGVudGlmaWVycygkaW50ZXJmYWNlLCBDT05URVhUX05BTUVfUFJPVE9UWVBFKTsKKyAgICBhc3Nl
cnQoIkpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpIHJlcXVpcmVzIHN0cmlu
Z3MgdHdvIG9yIG1vcmUgY2hhcmFjdGVycyBsb25nIikgaWYgbGVuZ3RoKCR2aXNpYmxlSW50ZXJm
YWNlTmFtZSkgPCAyOwogCisgICAgaWYgKCEkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCkg
eworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRI
T1VUX1RSQU5TSVRJT04oKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxu
Iik7CiAgICAgfQogCi0gICAgbXkgJGluc3RhbmNlSGFzaFRhYmxlID0gR2VuZXJhdGVIYXNoVGFi
bGUoJGludGVyZmFjZSwgQ09OVEVYVF9OQU1FX0lOU1RBTkNFKTsKLSAgICBwdXNoKEBpbXBsQ29u
dGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2li
bGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAke2luc3RhbmNlSGFzaFRhYmxlfSIp
OworICAgICMgLSBJbml0aWFsaXplIHN0YXRpYyBDbGFzc0luZm8gb2JqZWN0CisgICAgcHVzaChA
aW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7
IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CiAKKyAgICBp
ZiAoJG51bUluc3RhbmNlUHJvcGVydGllcyA+IDApIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICImJHtjbGFzc05hbWV9VGFibGUiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIm51bGxwdHIiKTsKKyAgICB9CiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiBFTkFCTEUoSklUKVxuIik7CkBA
IC00NTUzLDggKzQ2NzIsNzggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50
b1ByaW1pdGl2ZVN5bWJvbCwganNVbmRlZmluZWQoKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7CiAgICAgfQogCi0gICAgR2VuZXJhdGVQcml2
YXRlSWRlbnRpZmllcnMoJGludGVyZmFjZSwgQ09OVEVYVF9OQU1FX0lOU1RBTkNFKTsKKyAgICAj
IFN1cHBvcnQgZm9yIFJ1bnRpbWVFbmFibGVkIGF0dHJpYnV0ZXMgb24gaW5zdGFuY2VzLgorICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAg
ICAgICBuZXh0IHVubGVzcyBOZWVkc1J1bnRpbWVDaGVjaygkaW50ZXJmYWNlLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgbmV4dCB1bmxlc3MgQXR0cmlidXRlU2hvdWxkQmVPbkluc3RhbmNlKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOworCisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJXZWJDb3Jl
SlNDbGllbnREYXRhLmgiKTsKKyAgICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0
cmluZyA9IEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2Us
ICRhdHRyaWJ1dGUsICJnbG9iYWxPYmplY3QoKSIpOworICAgICAgICBteSAkYXR0cmlidXRlTmFt
ZSA9ICRhdHRyaWJ1dGUtPm5hbWU7CisgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVH
ZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICBt
eSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSB8fCAkY29kZUdlbmVyYXRvci0+SXND
b25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRyaWJ1
dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAg
ICBteSAkanNjQXR0cmlidXRlcyA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUoJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIG15ICRpc1ByaXZhdGVBbmRQdWJsaWMgPSAkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQdWJsaWNJZGVudGlmaWVyfSAmJiAkYXR0cmli
dXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn07CisKKyAgICAgICAg
bXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9u
YWxTdHJpbmcoJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICgke3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmlu
Z30pIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiIHsiKSBpZiAkaXNQcml2YXRlQW5k
UHVibGljOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CisgICAgICAgIGFzc2Vy
dCgiQ3VzdG9tR2V0dGVyU2V0dGVyIGlzIG5vdCBhbGxvd2VkIGZvciBET01BdHRyaWJ1dGUuIERP
TUF0dHJpYnV0ZUdldHRlclNldHRlciBtdXN0IGJlIHVzZWQuIikgaWYgSXNBY2NlbGVyYXRlZERP
TUF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKIAorICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHVibGljSWRlbnRpZmllcn0gfHwgISRhdHRyaWJ1
dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSkgeworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZt
LCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFt
ZXMoKS4iIC4gJGF0dHJpYnV0ZU5hbWUgLiAiUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwgJHNldHRlciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
JGpzY0F0dHJpYnV0ZXMpKTtcbiIpOworICAgICAgICB9CisgICAgICAgIGlmICgkYXR0cmlidXRl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn0pIHsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVz
KCkuIiAuICRhdHRyaWJ1dGVOYW1lIC4gIlByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRl
cjo6Y3JlYXRlKHZtLCAkZ2V0dGVyLCAkc2V0dGVyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgk
anNjQXR0cmlidXRlcykpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB9XG4iKSBpZiAkaXNQcml2YXRlQW5kUHVibGljOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgIH0KKwor
ICAgICMgU3VwcG9ydCBQcml2YXRlSWRlbnRpZmllciBhdHRyaWJ1dGVzIG9uIGluc3RhbmNlcy4K
KyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsK
KyAgICAgICAgbmV4dCBpZiBOZWVkc1J1bnRpbWVDaGVjaygkaW50ZXJmYWNlLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
UHJpdmF0ZUlkZW50aWZpZXJ9OworICAgICAgICBuZXh0IHVubGVzcyBBdHRyaWJ1dGVTaG91bGRC
ZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisKKyAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIldlYkNvcmVKU0NsaWVudERhdGEuaCIpOworICAgICAgICBteSAkY29uZGl0aW9u
YWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0
cmlidXRlKTsKKyAgICAgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5uYW1lOwor
ICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAg
ICBhc3NlcnQoIkN1c3RvbUdldHRlclNldHRlciBpcyBub3QgYWxsb3dlZCBmb3IgRE9NQXR0cmli
dXRlLiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIgbXVzdCBiZSB1c2VkLiIpIGlmIElzQWNjZWxl
cmF0ZWRET01BdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2Fz
dDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS4iIC4gJGF0
dHJpYnV0ZU5hbWUgLiAiUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sICRnZXR0ZXIsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CisgICAgfQorCisgICAgIyBTdXBwb3J0IGZvciBSdW50aW1lRW5hYmxl
ZCBvcGVyYXRpb25zIG9uIGluc3RhbmNlcy4KKyAgICBmb3JlYWNoIG15ICRvcGVyYXRpb24gKEB7
JGludGVyZmFjZS0+b3BlcmF0aW9uc30pIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgTmVlZHNSdW50
aW1lQ2hlY2soJGludGVyZmFjZSwgJG9wZXJhdGlvbik7CisgICAgICAgIG5leHQgdW5sZXNzIE9w
ZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKTsKKyAgICAg
ICAgbmV4dCBpZiAkb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJG9wZXJhdGlvbi0+e292
ZXJsb2FkSW5kZXh9ID4gMTsKKworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIik7CisgICAgICAgIG15ICRydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJp
bmcgPSBHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlLCAk
b3BlcmF0aW9uLCAiZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9
ICRvcGVyYXRpb24tPm5hbWU7CisgICAgICAgIG15ICRpbXBsZW1lbnRhdGlvbkZ1bmN0aW9uID0g
R2V0RnVuY3Rpb25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRvcGVyYXRpb24pOworICAg
ICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkb3BlcmF0aW9uKTsK
KyAgICAgICAgbXkgJGpzQXR0cmlidXRlcyA9IENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVy
ZmFjZSwgJG9wZXJhdGlvbik7CisKKyAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNv
ZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJG9wZXJhdGlvbik7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgk
e3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30pXG4iKTsKKyAgICAgICAgbXkgJHByb3Bl
cnR5TmFtZSA9ICJzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5i
dWlsdGluTmFtZXMoKS4iIC4gJGZ1bmN0aW9uTmFtZSAuICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn0gPyAiUHJpdmF0ZU5hbWUoKSIgOiAiUHVibGlj
TmFtZSgpIik7CisgICAgICAgIGlmIChJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkb3BlcmF0aW9u
KSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEJ1
aWx0aW5GdW5jdGlvbih2bSwgdGhpcywgJHByb3BlcnR5TmFtZSwgJGltcGxlbWVudGF0aW9uRnVu
Y3Rpb24odm0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRqc0F0dHJpYnV0ZXMpKTtcbiIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCAkcHJvcGVydHlOYW1lLCAkZnVuY3Rp
b25MZW5ndGgsICRpbXBsZW1lbnRhdGlvbkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZSgkanNBdHRyaWJ1dGVzKSk7XG4iKTsKKyAgICAgICAgfQorICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAg
IH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2bS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5
QWxsb2NhdGVkKHdyYXBwZWQoKS5tZW1vcnlDb3N0KCkpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57UmVwb3J0RXh0cmFNZW1vcnlDb3N0fTsKICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAKQEAgLTYyNDQsNyArNjQzMywzNyBAQCBzdWIgR2VuZXJhdGVD
YWxsYmFja0ltcGxlbWVudGF0aW9uQ29udGVudAogICAgIG15ICRudW1Db25zdGFudHMgPSBAeyRj
b25zdGFudHN9OwogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewogICAgICAgICBHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oJGNvbnRlbnRSZWYsICRjbGFzc05hbWUsICRpbnRlcmZh
Y2VPckNhbGxiYWNrLCAkbmFtZSk7Ci0gICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0
aW9ucygkY29udGVudFJlZiwgJGNsYXNzTmFtZSwgJHZpc2libGVOYW1lLCAkaW50ZXJmYWNlT3JD
YWxsYmFjayk7CisKKyAgICAgICAgbXkgJGhhc2hTaXplID0gMDsKKyAgICAgICAgbXkgJGhhc2hO
YW1lID0gJGNsYXNzTmFtZSAuICJDb25zdHJ1Y3RvclRhYmxlIjsKKworICAgICAgICBteSBAaGFz
aEtleXMgPSAoKTsKKyAgICAgICAgbXkgQGhhc2hWYWx1ZTEgPSAoKTsKKyAgICAgICAgbXkgQGhh
c2hWYWx1ZTIgPSAoKTsKKyAgICAgICAgbXkgQGhhc2hTcGVjaWFscyA9ICgpOworICAgICAgICBt
eSAlY29uZGl0aW9uYWxzID0gKCk7CisgICAgICAgIG15ICVyZWFkV3JpdGVDb25kaXRpb25hbHMg
PSAoKTsKKworICAgICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskY29uc3RhbnRzfSkgewor
ICAgICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CisgICAgICAgICAgICBwdXNo
KEBoYXNoS2V5cywgJG5hbWUpOworICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGNvbnN0
YW50LT52YWx1ZSk7CisgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOworICAgICAg
ICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyIik7CisKKyAgICAgICAgICAgIG15ICRpbXBsZW1lbnRl
ZEJ5ID0gJGNvbnN0YW50LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEJ5fTsKKyAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMSBpZiAkaW1w
bGVtZW50ZWRCeTsKKworICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGNvbnN0YW50LT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CisgICAgICAgICAgICAkY29uZGl0aW9u
YWxzeyRuYW1lfSA9ICRjb25kaXRpb25hbCBpZiAkY29uZGl0aW9uYWw7CisKKyAgICAgICAgICAg
ICRoYXNoU2l6ZSsrOworICAgICAgICB9CisgICAgICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRh
YmxlKCRjbGFzc05hbWUsICRoYXNoTmFtZSwgJGhhc2hTaXplLCBcQGhhc2hLZXlzLCBcQGhhc2hT
cGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBcJXJl
YWRXcml0ZUNvbmRpdGlvbmFscywgMSkgaWYgJGhhc2hTaXplID4gMDsKKworICAgICAgICBwdXNo
KEAkY29udGVudFJlZiwgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29tcGlsZVRpbWVDaGVja0Zv
ckVudW1zSWZOZWVkZWQoJGludGVyZmFjZU9yQ2FsbGJhY2spKTsKKworICAgICAgICBHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbnMoJGNvbnRlbnRSZWYsICRjbGFzc05hbWUsICIiLCAkdmlz
aWJsZU5hbWUsICRpbnRlcmZhY2VPckNhbGxiYWNrKTsKIAogICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiSlNET01HbG9iYWxPYmplY3RJbmxpbmVzLmgiKTsKICAgICAgICAgcHVzaChAJGNvbnRl
bnRSZWYsICJKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25z
dCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CkBAIC03MDAyLDYgKzcyMjEsOCBA
QCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAgbXkgJHBhY2tlZFNpemUgPSBz
Y2FsYXIgQHska2V5c307CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSAkbmFtZUVudHJpZXNcW1xdID1cblx7XG4iKTsKIAorICAgIG15ICRoYXNT
ZXR0ZXIgPSAiZmFsc2UiOworCiAgICAgbXkgJGkgPSAwOwogICAgIGZvcmVhY2ggbXkgJGtleSAo
QHska2V5c30pIHsKICAgICAgICAgbXkgJGZpcnN0VGFyZ2V0VHlwZTsKQEAgLTcwMjcsMTIgKzcy
NDgsMTAgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAgICAgICAgJGZp
cnN0VGFyZ2V0VHlwZSA9ICIiOwogICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+
IG0vRE9NSklUQXR0cmlidXRlLykgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJz
dGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4iOwotICAgICAgICB9
IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vUHJvcGVydHlDYWxsYmFjay8pIHsKLSAgICAg
ICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJh
Y2s+IjsKLSAgICAgICAgICAgICRzZWNvbmRUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PElzTGF6
eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPiI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPiI7CiAgICAgICAgICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4iOworICAgICAgICAgICAgJGhhc1NldHRlciA9ICJ0
cnVlIjsKICAgICAgICAgfQogICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0
YW50SW50ZWdlci8pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIk
a2V5XCIsIEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSIgLiAkZmly
c3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pIH0gfSxcbiIpOwpAQCAtNzA2MSwyNyArNzI4
MCw1MSBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAKICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9XG4iKSBpZiAoISRw
YWNrZWRTaXplKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn07XG5cbiIpOworCisgICAgcmV0
dXJuICRoYXNTZXR0ZXI7CiB9CiAKIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZQogewotICAgIG15ICgk
aW50ZXJmYWNlLCAkY29udGV4dE5hbWUpID0gQF87Ci0KLSAgICBteSBAa2V5cyA9ICgpOwotICAg
IG15IEBzcGVjaWFscyA9ICgpOwotICAgIG15IEB2YWx1ZTEgPSAoKTsKLSAgICBteSBAdmFsdWUy
ID0gKCk7Ci0gICAgbXkgJWNvbmRpdGlvbmFscyA9ICgpOwotICAgIG15ICVyZWFkV3JpdGVDb25k
aXRpb25hbHMgPSAoKTsKLQotICAgIG15ICgkc2l6ZSwgJGhhc1NldHRlck9yUmVhZG9ubHlQcm9w
ZXJ0aWVzKSA9IEdlbmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSgkaW50ZXJmYWNlLCAkY29udGV4
dE5hbWUsIFxAa2V5cywgXEBzcGVjaWFscywgXEB2YWx1ZTEsIFxAdmFsdWUyLCBcJWNvbmRpdGlv
bmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMpOwotICAgIHJldHVybiAibnVsbHB0ciIgaWYg
JHNpemUgPT0gMDsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAKLSAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIi8qIEhhc2ggdGFibGUgZm9yICR7Y29udGV4dE5hbWV9ICovXG4iKTsKKyAgICBteSAk
Y2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkc2l6ZSA9
IHNoaWZ0OworICAgIG15ICRrZXlzID0gc2hpZnQ7CisgICAgbXkgJHNwZWNpYWxzID0gc2hpZnQ7
CisgICAgbXkgJHZhbHVlMSA9IHNoaWZ0OworICAgIG15ICR2YWx1ZTIgPSBzaGlmdDsKKyAgICBt
eSAkY29uZGl0aW9uYWxzID0gc2hpZnQ7CisgICAgbXkgJHJlYWRXcml0ZUNvbmRpdGlvbmFscyA9
IHNoaWZ0OworICAgIG15ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID0gc2hpZnQ7CiAKLSAgICBt
eSAkbmFtZSA9ICRpbnRlcmZhY2UtPmNsYXNzTmFtZSAuICIke2NvbnRleHROYW1lfVRhYmxlIjsK
ICAgICBteSAkbmFtZUVudHJpZXMgPSAiJHtuYW1lfVZhbHVlcyI7CisgICAgJG5hbWVFbnRyaWVz
ID1+IHMvOi9fL2c7CiAgICAgbXkgJG5hbWVJbmRleCA9ICIke25hbWV9SW5kZXgiOworICAgICRu
YW1lSW5kZXggPX4gcy86L18vZzsKKworICAgIGlmICgoJG5hbWUgPX4gL1Byb3RvdHlwZS8pIG9y
ICgkbmFtZSA9fiAvQ29uc3RydWN0b3IvKSkgeworICAgICAgICBteSAkdHlwZSA9ICRuYW1lOwor
ICAgICAgICBteSAkaW1wbENsYXNzOworCisgICAgICAgIGlmICgkbmFtZSA9fiAvUHJvdG90eXBl
LykgeworICAgICAgICAgICAgJHR5cGUgPX4gcy9Qcm90b3R5cGUuKi8vOworICAgICAgICAgICAg
JGltcGxDbGFzcyA9ICR0eXBlOyAkaW1wbENsYXNzID1+IHMvV3JhcHBlciQvLzsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovXG4i
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0eXBlID1+IHMvQ29uc3RydWN0b3Iu
Ki8vOworICAgICAgICAgICAgJGltcGxDbGFzcyA9ICR0eXBlOyAkaW1wbENsYXNzID1+IHMvQ29u
c3RydWN0b3IkLy87CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIi8qIEhhc2ggdGFi
bGUgZm9yIGNvbnN0cnVjdG9yICovXG4iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiLyogSGFzaCB0YWJsZSAqL1xuIik7CisgICAgfQorCisg
ICAgaWYgKCRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5KSB7CisgICAgICAgIEdlbmVyYXRlSGFzaFRh
YmxlVmFsdWVBcnJheSgka2V5cywgJHNwZWNpYWxzLCAkdmFsdWUxLCAkdmFsdWUyLCAkY29uZGl0
aW9uYWxzLCAkcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkbmFtZUVudHJpZXMpIGlmICRzaXplOwor
ICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgIyBHZW5lcmF0ZSBzaXplIGRhdGEgZm9yIGNv
bXBhY3QnIHNpemUgaGFzaCB0YWJsZQogCkBAIC03MDk1LDcgKzczMzgsNyBAQCBzdWIgR2VuZXJh
dGVIYXNoVGFibGUKICAgICBteSAkbnVtRW50cmllcyA9ICRjb21wYWN0U2l6ZTsKIAogICAgIG15
ICRpID0gMDsKLSAgICBmb3JlYWNoIChAa2V5cykgeworICAgIGZvcmVhY2ggKEB7JGtleXN9KSB7
CiAgICAgICAgIG15ICRkZXB0aCA9IDA7CiAgICAgICAgIG15ICRoID0gSGFzaGVyOjpHZW5lcmF0
ZUhhc2hWYWx1ZSgkXykgJSAkbnVtRW50cmllczsKIApAQCAtNzEyNyw1MyArNzM3MCwxMiBAQCBz
dWIgR2VuZXJhdGVIYXNoVGFibGUKICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9O1xu
XG4iKTsKIAotICAgIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheShcQGtleXMsIFxAc3BlY2lh
bHMsIFxAdmFsdWUxLCBcQHZhbHVlMiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0
aW9uYWxzLCAkbmFtZUVudHJpZXMpOworICAgICMgRHVtcCB0aGUgaGFzaCB0YWJsZQorICAgIG15
ICRoYXNTZXR0ZXIgPSBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkoJGtleXMsICRzcGVjaWFs
cywgJHZhbHVlMSwgJHZhbHVlMiwgJGNvbmRpdGlvbmFscywgJHJlYWRXcml0ZUNvbmRpdGlvbmFs
cywgJG5hbWVFbnRyaWVzKTsKKyAgICBteSAkcGFja2VkU2l6ZSA9IHNjYWxhciBAeyRrZXlzfTsK
IAotICAgIG15ICRwYWNrZWRTaXplID0gc2NhbGFyKEBrZXlzKTsKICAgICBteSAkY29tcGFjdFNp
emVNYXNrID0gJG51bUVudHJpZXMgLSAxOwotICAgIG15ICRjbGFzc0ZvclRoaXMgPSAkY29udGV4
dE5hbWUgZXEgQ09OVEVYVF9OQU1FX0NPTlNUUlVDVE9SID8gIm51bGxwdHIiIDogJGludGVyZmFj
ZS0+Y2xhc3NOYW1lIC4gIjo6aW5mbygpIjsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRp
YyBjb25zdCBIYXNoVGFibGUgJG5hbWUgPSB7ICRwYWNrZWRTaXplLCAkY29tcGFjdFNpemVNYXNr
LCAkaGFzU2V0dGVyT3JSZWFkb25seVByb3BlcnRpZXMsICRjbGFzc0ZvclRoaXMsICRuYW1lRW50
cmllcywgJG5hbWVJbmRleCB9O1xuIik7Ci0KLSAgICByZXR1cm4gIiYke25hbWV9IjsKLX0KLQot
c3ViIEdlbmVyYXRlUHJpdmF0ZUlkZW50aWZpZXJzCi17Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRj
b250ZXh0TmFtZSkgPSBAXzsKLQotICAgIG15ICRpc0NvbnN0cnVjdG9yID0gJGNvbnRleHROYW1l
IGVxIENPTlRFWFRfTkFNRV9DT05TVFJVQ1RPUjsKLSAgICBteSAkaXNJbnN0YW5jZSA9ICRjb250
ZXh0TmFtZSBlcSBDT05URVhUX05BTUVfSU5TVEFOQ0U7Ci0KLSAgICBmb3JlYWNoIG15ICRvcGVy
YXRpb25PckF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5vcGVyYXRpb25zfSwgQHskaW50ZXJmYWNl
LT5hdHRyaWJ1dGVzfSkgewotICAgICAgICBuZXh0IGlmICEkb3BlcmF0aW9uT3JBdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfTsKLSAgICAgICAgbmV4dCBp
ZiAoJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5pc1N0YXRpYyB8fCAwKSAhPSAkaXNDb25zdHJ1Y3Rv
cjsKLSAgICAgICAgbmV4dCBpZiBTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJG9wZXJh
dGlvbk9yQXR0cmlidXRlKSAhPSAkaXNJbnN0YW5jZTsKLQotICAgICAgICBhc3NlcnQoIlVzaW5n
IERPTUpJVCB3aXRoIHByaXZhdGUgaWRlbnRpZmllcnMgaXMgbm90IHlldCBzdXBwb3J0ZWQuIikg
aWYgJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9Owot
Ci0gICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9OwotICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7
Ci0gICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2Vu
ZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1ZSgkY29uZGl0aW9uYWwpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31c
biIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKE5lZWRzUnVudGltZUNoZWNrKCRpbnRlcmZh
Y2UsICRvcGVyYXRpb25PckF0dHJpYnV0ZSkpIHsKLSAgICAgICAgICAgIG15ICRydW50aW1lRW5h
YmxlQ29uZGl0aW9uYWxTdHJpbmcgPSBHZW5lcmF0ZVJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0
cmluZygkaW50ZXJmYWNlLCAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUsICJnbG9iYWxPYmplY3QoKSIp
OwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCR7cnVudGltZUVuYWJs
ZUNvbmRpdGlvbmFsU3RyaW5nfSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIik7Ci0gICAgICAgIH0KLQotICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIik7Ci0gICAgICAgIG15ICRwcm9wZXJ0eU5hbWUgPSAic3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuIiAuICRv
cGVyYXRpb25PckF0dHJpYnV0ZS0+bmFtZSAuICJQcml2YXRlTmFtZSgpIjsKLSAgICAgICAgaWYg
KHJlZigkb3BlcmF0aW9uT3JBdHRyaWJ1dGUpIGVxICJJRExBdHRyaWJ1dGUiKSB7Ci0gICAgICAg
ICAgICBteSAkanNjQXR0cmlidXRlID0gJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBl
KCRvcGVyYXRpb25PckF0dHJpYnV0ZS0+dHlwZSkgPyAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tVmFsdWUiIDogIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIjsK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCAke3Byb3BlcnR5TmFtZX0sICIgLiBHZXRBdHRyaWJ1dGVKU1ZhbHVlKCRpbnRlcmZh
Y2UsICRvcGVyYXRpb25PckF0dHJpYnV0ZSkgLiAiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oJHtq
c2NBdHRyaWJ1dGV9KSk7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdCh2bSwgJHtwcm9wZXJ0eU5hbWV9LCAiIC4gR2V0
T3BlcmF0aW9uSlNWYWx1ZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUsICJ0aGlz
LT5nbG9iYWxPYmplY3QoKSIpIC4gIik7XG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWw7Ci0gICAgfQorICAgIHB1
c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0IEhhc2hUYWJsZSAkbmFtZSA9IHsgJHBhY2tl
ZFNpemUsICRjb21wYWN0U2l6ZU1hc2ssICRoYXNTZXR0ZXIsICR7Y2xhc3NOYW1lfTo6aW5mbygp
LCAkbmFtZUVudHJpZXMsICRuYW1lSW5kZXggfTtcbiIpOwogfQogCiBzdWIgU3Vic3RpdHV0ZUhl
YWRlcgpAQCAtNzMzNCw3ICs3NTM2LDcgQEAgc3ViIEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRp
b24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTtcbiIpOwogCi0gICAgJHN0cnVj
dHVyZUZsYWdzeyJKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUifSA9IDEgaWYgUHJvdG90eXBl
SGFzUHJvcGVydGllcygkaW50ZXJmYWNlKTsKKyAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SGFz
U3RhdGljUHJvcGVydHlUYWJsZSJ9ID0gMSBpZiBQcm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlKCRpbnRlcmZhY2UpICYmIElzR2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpOwogICAgICRz
dHJ1Y3R1cmVGbGFnc3siSlNDOjpJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCJ9ID0g
MSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJc0ltbXV0YWJsZVByb3RvdHlw
ZUV4b3RpY09iamVjdE9uUHJvdG90eXBlfTsKIAogICAgICMgc3RydWN0dXJlIGZsYWdzCkBAIC03
Mzc5LDEzICs3NTgxLDEzIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KIAog
c3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucwogewotICAgIG15ICgkb3V0cHV0QXJy
YXksICRjbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGludGVyZmFjZSwgJGdlbmVy
YXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24pID0gQF87CisgICAgbXkgKCRvdXRwdXRBcnJheSwg
JGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRl
cmZhY2UsICRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uKSA9IEBfOwogCiAgICAgaWYg
KElzQ29uc3RydWN0YWJsZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSBAY29uc3RydWN0b3Jz
ID0gQHskaW50ZXJmYWNlLT5jb25zdHJ1Y3RvcnN9OwogICAgICAgICBpZiAoQGNvbnN0cnVjdG9y
cyA+IDEpIHsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0cnVjdG9yIChAY29uc3RydWN0
b3JzKSB7Ci0gICAgICAgICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oJG91
dHB1dEFycmF5LCAkY2xhc3NOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2Us
ICRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uLCAkY29uc3RydWN0b3IpOworICAgICAg
ICAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uKCRvdXRwdXRBcnJheSwgJGNs
YXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZh
Y2UsICRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uLCAkY29uc3RydWN0b3IpOwogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCA9ICJj
b25zdHJ1Y3Qke2NsYXNzTmFtZX0iOwpAQCAtNzQwMSwxOCArNzYwMywxOCBAQCBzdWIgR2VuZXJh
dGVDb25zdHJ1Y3RvckRlZmluaXRpb25zCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0NfQU5OT1RBVEVfSE9T
VF9GVU5DVElPTigke2NsYXNzTmFtZX1Db25zdHJ1Y3RvckNvbnN0cnVjdCwgJHtjbGFzc05hbWV9
RE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7XG5cbiIpOwogICAgICAgICB9IGVsc2lmIChAY29u
c3RydWN0b3JzID09IDEpIHsKLSAgICAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0
aW9uKCRvdXRwdXRBcnJheSwgJGNsYXNzTmFtZSwgJHZpc2libGVJbnRlcmZhY2VOYW1lLCAkaW50
ZXJmYWNlLCAkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbiwgJGNvbnN0cnVjdG9yc1sw
XSk7CisgICAgICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbigkb3V0cHV0QXJy
YXksICRjbGFzc05hbWUsICRwcm90b0NsYXNzTmFtZSwgJHZpc2libGVJbnRlcmZhY2VOYW1lLCAk
aW50ZXJmYWNlLCAkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbiwgJGNvbnN0cnVjdG9y
c1swXSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVmaW5pdGlvbigkb3V0cHV0QXJyYXksICRjbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFt
ZSwgJGludGVyZmFjZSwgJGdlbmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24pOworICAgICAg
ICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oJG91dHB1dEFycmF5LCAkY2xhc3NO
YW1lLCAkcHJvdG9DbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGludGVyZmFjZSwg
JGdlbmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24pOwogICAgICAgICB9CiAgICAgfQogCi0g
ICAgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMoJG91dHB1dEFycmF5LCAkY2xhc3NO
YW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2UsICRnZW5lcmF0aW5nTGVnYWN5
RmFjdG9yeUZ1bmN0aW9uKTsKKyAgICBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcygk
b3V0cHV0QXJyYXksICRjbGFzc05hbWUsICRwcm90b0NsYXNzTmFtZSwgJHZpc2libGVJbnRlcmZh
Y2VOYW1lLCAkaW50ZXJmYWNlLCAkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbik7CiB9
CiAKIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogewotICAgIG15ICgkb3V0cHV0
QXJyYXksICRjbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGludGVyZmFjZSwgJGdl
bmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24sICRvcGVyYXRpb24pID0gQF87CisgICAgbXkg
KCRvdXRwdXRBcnJheSwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkdmlzaWJsZUludGVy
ZmFjZU5hbWUsICRpbnRlcmZhY2UsICRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uLCAk
b3BlcmF0aW9uKSA9IEBfOwogCiAgICAgcmV0dXJuIGlmIEhhc0pTQnVpbHRpbkNvbnN0cnVjdG9y
KCRpbnRlcmZhY2UpOwogCkBAIC03NDg2LDkgKzc2ODgsNjYgQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWZpbml0aW9uCiAgICAgfQogfQogCitzdWIgQ29uc3RydWN0b3JIYXNQcm9wZXJ0aWVz
Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAgZm9yZWFjaCBteSAkY29uc3Rh
bnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30p
IHsKKyAgICAgICAgbmV4dCB1bmxlc3MgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKTsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRpbnRlcmZh
Y2UtPm9wZXJhdGlvbnN9KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgkb3BlcmF0aW9uLT5pc1N0
YXRpYyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitz
dWIgR2V0UnVudGltZUVuYWJsZWRTdGF0aWNQcm9wZXJ0aWVzCit7CisgICAgbXkgKCRpbnRlcmZh
Y2UpID0gQF87CisKKyAgICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzID0gKCk7CisKKyAg
ICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAg
ICAgICAgbmV4dCBpZiBBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGF0
dHJpYnV0ZSkgIT0gMDsKKyAgICAgICAgbmV4dCBpZiBub3QgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7
CisKKyAgICAgICAgaWYgKE5lZWRzUnVudGltZUNoZWNrKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUp
KSB7CisgICAgICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMsICRhdHRyaWJ1
dGUpOworICAgICAgICB9CisgICAgfQorCisgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGlu
dGVyZmFjZS0+Y29uc3RhbnRzfSkgeworICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGlu
dGVyZmFjZSwgJGNvbnN0YW50KSkgeworICAgICAgICAgICAgcHVzaChAcnVudGltZUVuYWJsZWRQ
cm9wZXJ0aWVzLCAkY29uc3RhbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgZm9yZWFjaCBt
eSAkb3BlcmF0aW9uIChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9KSB7CisgICAgICAgIG5leHQg
aWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBh
bmQgbm90ICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9
KTsKKyAgICAgICAgbmV4dCBpZiAkb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJG9wZXJh
dGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKKyAgICAgICAgbmV4dCBpZiBPcGVyYXRpb25TaG91
bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJG9wZXJhdGlvbikgIT0gMDsKKyAgICAgICAgbmV4
dCBpZiAkb3BlcmF0aW9uLT5uYW1lIGVxICJbU3ltYm9sLkl0ZXJhdG9yXSI7CisgICAgICAgIG5l
eHQgaWYgbm90ICRvcGVyYXRpb24tPmlzU3RhdGljOworCisgICAgICAgIGlmIChOZWVkc1J1bnRp
bWVDaGVjaygkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSkgeworICAgICAgICAgICAgcHVzaChAcnVu
dGltZUVuYWJsZWRQcm9wZXJ0aWVzLCAkb3BlcmF0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzOworfQorCiBzdWIgR2VuZXJhdGVD
b25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKIHsKLSAgICBteSAoJG91dHB1dEFycmF5LCAkY2xhc3NO
YW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2UsICRnZW5lcmF0aW5nTGVnYWN5
RmFjdG9yeUZ1bmN0aW9uKSA9IEBfOworICAgIG15ICgkb3V0cHV0QXJyYXksICRjbGFzc05hbWUs
ICRwcm90b0NsYXNzTmFtZSwgJHZpc2libGVJbnRlcmZhY2VOYW1lLCAkaW50ZXJmYWNlLCAkZ2Vu
ZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbikgPSBAXzsKIAogICAgIG15ICRjb25zdHJ1Y3Rv
ckNsYXNzTmFtZSA9ICRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uID8gIiR7Y2xhc3NO
YW1lfUxlZ2FjeUZhY3RvcnlGdW5jdGlvbiIgOiAiJHtjbGFzc05hbWV9RE9NQ29uc3RydWN0b3Ii
OwogICAgIG15ICRsZWFzdENvbnN0cnVjdG9yTGVuZ3RoID0gMDsKQEAgLTc1MDIsMjAgKzc3NjEs
NyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICAgICAgJGxlYXN0
Q29uc3RydWN0b3JMZW5ndGggPSAwOwogICAgIH0KIAotICAgIG15ICRjb25zdHJ1Y3Rvckhhc2hU
YWJsZSA9ICJudWxscHRyIjsKLSAgICB1bmxlc3MgKCRnZW5lcmF0aW5nTGVnYWN5RmFjdG9yeUZ1
bmN0aW9uKSB7Ci0gICAgICAgICRjb25zdHJ1Y3Rvckhhc2hUYWJsZSA9IEdlbmVyYXRlSGFzaFRh
YmxlKCRpbnRlcmZhY2UsIENPTlRFWFRfTkFNRV9DT05TVFJVQ1RPUik7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29tcGlsZVRpbWVDaGVja0Zv
ckVudW1zSWZOZWVkZWQoJGludGVyZmFjZSkpOwotCi0gICAgICAgIG15ICRzdHJ1Y3R1cmVGbGFn
cyA9ICJCYXNlOjpTdHJ1Y3R1cmVGbGFncyI7Ci0gICAgICAgIGlmICgkY29uc3RydWN0b3JIYXNo
VGFibGUgbmUgIm51bGxwdHIiKSB7Ci0gICAgICAgICAgICAkc3RydWN0dXJlRmxhZ3MgLj0gIiB8
IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSI7Ci0gICAgICAgIH0KLQotICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkICR7Y29uc3RydWN0b3JD
bGFzc05hbWV9OjpTdHJ1Y3R1cmVGbGFncyA9ICR7c3RydWN0dXJlRmxhZ3N9O1xuIik7Ci0gICAg
fQotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VO
YW1lfVwiLCAmQmFzZTo6c19pbmZvLCAke2NvbnN0cnVjdG9ySGFzaFRhYmxlfSwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRSgke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSkgfTtcblxuIik7Cisg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCR7
Y29uc3RydWN0b3JDbGFzc05hbWV9KSB9O1xuXG4iKTsKIAogICAgICMgSWYgdGhlIGludGVyZmFj
ZSBoYXMgYSBwYXJlbnQgaW50ZXJmYWNlIHdoaWNoIGRvZXMgbm90IGhhdmUgW0xlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0XSwgdGhlbiB1c2UgaXRzIGludGVyZmFjZSBvYmplY3QgYXMgcHJvdG90eXBl
LAogICAgICMgb3RoZXJ3aXNlIHVzZSBGdW5jdGlvblByb3RvdHlwZTogaHR0cDovL2hleWNhbS5n
aXRodWIuaW8vd2ViaWRsLyNpbnRlcmZhY2Utb2JqZWN0CkBAIC03NTUwLDcgKzc3OTYsNiBAQCBz
dWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICB9IGVsc2lmICgkaW50ZXJm
YWNlLT5pc0NhbGxiYWNrKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTtcbiIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlz
TmFtZXNwYWNlT2JqZWN0KSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsKICAgICB9
IGVsc2UgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xhc3NOYW1lfTo6cHJvdG90eXBlKHZtLCBn
bG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7XG4iKTsKQEAgLTc1NjksMTAgKzc4MTQsMjYgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JIZWxwZXJNZXRob2RzCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoJHtsZWFzdENvbnN0cnVj
dG9yTGVuZ3RofSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7CiAgICAgfQogCi0gICAgR2VuZXJhdGVQcml2
YXRlSWRlbnRpZmllcnMoJGludGVyZmFjZSwgQ09OVEVYVF9OQU1FX0NPTlNUUlVDVE9SKTsKLQot
ICAgIGlmICgkY29uc3RydWN0b3JIYXNoVGFibGUgbmUgIm51bGxwdHIiKSB7Ci0gICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIG51bGxwdHIs
ICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTtcbiIpOworICAgIG15
ICRjbGFzc0ZvclRoaXMgPSAiJHtjbGFzc05hbWV9OjppbmZvKCkiOworICAgIGlmICgkaW50ZXJm
YWNlLT5pc0NhbGxiYWNrKSB7CisgICAgICAgICRjbGFzc0ZvclRoaXMgPSAibnVsbHB0ciI7Cisg
ICAgfQorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXMo
dm0sICR7Y2xhc3NGb3JUaGlzfSwgJHtjbGFzc05hbWV9Q29uc3RydWN0b3JUYWJsZVZhbHVlcywg
KnRoaXMpO1xuIikgaWYgQ29uc3RydWN0b3JIYXNQcm9wZXJ0aWVzKCRpbnRlcmZhY2UpOworCisg
ICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEdldFJ1bnRpbWVFbmFibGVkU3RhdGlj
UHJvcGVydGllcygkaW50ZXJmYWNlKTsKKworICAgIGZvcmVhY2ggbXkgJG9wZXJhdGlvbk9yQXR0
cmlidXRlIChAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzKSB7CisgICAgICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRv
cGVyYXRpb25PckF0dHJpYnV0ZSk7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiNpZiAk
e2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBt
eSAkcnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50aW1lRW5hYmxl
Q29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSwgJG9wZXJhdGlvbk9yQXR0cmlidXRlLCAiJmds
b2JhbE9iamVjdCIpOworICAgICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+
bmFtZTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghJHtydW50aW1lRW5h
YmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFt
ZVwiKSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICB9XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiI2VuZGlmXG4iKSBp
ZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
fVxuXG4iKTsKQEAgLTc2NjQsMTIgKzc5MjUsNiBAQCBzdWIgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lh
bAogICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgIHB1c2goQHNwZWNpYWxzLCAoIkpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUiLCAiSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkiKSkgaWYgSXNMZWdhY3lVbmZvcmdlYWJsZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKTsK
ICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIikg
aWYgJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Tm90RW51bWVyYWJsZX07Ci0KLSAg
ICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwgJG9wZXJhdGlvbikpIHsKLSAgICAg
ICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxi
YWNrIik7Ci0gICAgICAgIHJldHVybiBcQHNwZWNpYWxzOwotICAgIH0KLQogICAgIGlmIChJc0pT
QnVpbHRpbigkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSkgewogICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4iKTsKICAgICB9IGVsc2UgewpAQCAt
NzY3OCw3ICs3OTMzLDcgQEAgc3ViIENvbXB1dGVGdW5jdGlvblNwZWNpYWwKICAgICBpZiAoJG9w
ZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfSkgewogICAgICAgICBwdXNoKEBz
cGVjaWFscywgIkpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEZ1bmN0aW9uIikgaWYgJG9w
ZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfTsKICAgICB9Ci0gICAgcmV0dXJu
IFxAc3BlY2lhbHM7CisgICAgcmV0dXJuICJzdGF0aWNfY2FzdDx1bnNpZ25lZD4oIiAuICgoQHNw
ZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiKSAuICIpIjsKIH0KIAog
c3ViIElzSlNCdWlsdGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsCmluZGV4IDY0Y2U0MzEz
M2NiMWU4NTA3YjRjNzVlNDE4NDg2ZWFiYjIxNzQ0MTguLmViN2UyZWYxMzk3MmFjMDYwNjBiZGFh
ZmZkNDNkNmJmMDU3ZTQ5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9ET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsCkBAIC01LDcg
KzUsNyBAQCBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewogICAgIGF0dHJpYnV0ZSBUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yIFRlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlOwogICAgIGF0dHJpYnV0ZSBUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yIFRlc3REZWZh
dWx0VG9KU09OOwogICAgIGF0dHJpYnV0ZSBUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IgVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZDsKLSAgICBb
UHJpdmF0ZUlkZW50aWZpZXIsIFB1YmxpY0lkZW50aWZpZXJdIGF0dHJpYnV0ZSBUZXN0RW5hYmxl
ZEJ5U2V0dGluZ0NvbnN0cnVjdG9yIFRlc3RFbmFibGVkQnlTZXR0aW5nOworICAgIGF0dHJpYnV0
ZSBUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yIFRlc3RFbmFibGVkQnlTZXR0aW5nOwog
ICAgIFtFbmFibGVkRm9yQ29udGV4dCwgU2VjdXJlQ29udGV4dF0gYXR0cmlidXRlIFRlc3RFbmFi
bGVkRm9yQ29udGV4dENvbnN0cnVjdG9yIFRlc3RFbmFibGVkRm9yQ29udGV4dDsKICAgICBbQ29u
ZGl0aW9uYWw9Q29uZGl0aW9uMXxDb25kaXRpb24yXSBhdHRyaWJ1dGUgVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yIFRlc3RJbnRlcmZhY2U7CiAgICAgYXR0cmlidXRlIFRlc3ROb2RlQ29uc3RydWN0
b3IgVGVzdE5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcAppbmRleCBiZGM0MDQ3YzQ1N2ZhZGUzYjdlYTI4OTgx
ZTRjZTM1OTI1MjVkZTE3Li40MThkOWE1ZGVkOTdmZWRiYjE2ZjkyYTFkNTRhZGZlZDY5OTczM2Ux
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNE
T01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RPTVdpbmRvdy5jcHAKQEAgLTgwLDU4ICs4MCw5IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvCiAKIHVzaW5nIEpTRE9NV2luZG93RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZTxKU0RPTVdpbmRvdz47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWdu
ZWQgSlNET01XaW5kb3dET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93RE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkRPTVdpbmRvdyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dET01Db25zdHJ1Y3Rvcikg
fTsKLQotdGVtcGxhdGU8PiBKU1ZhbHVlIEpTRE9NV2luZG93RE9NQ29uc3RydWN0b3I6OnByb3Rv
dHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gSlNFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3Io
dm0sICZnbG9iYWxPYmplY3QpOwotfQotCi10ZW1wbGF0ZTw+IHZvaWQgSlNET01XaW5kb3dET01D
b25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBnbG9iYWxPYmplY3QuZ2V0UHJvdG90eXBlRGlyZWN0KHZtKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCAiRE9NV2lu
ZG93Il9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQotLyogSGFzaCB0YWJsZSBm
b3IgUHJvdG90eXBlICovCisvKiBIYXNoIHRhYmxlICovCiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7Ci0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsg
ImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotfTsK
LQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxlID0geyAx
LCAxLCB0cnVlLCBKU0RPTVdpbmRvdzo6aW5mbygpLCBKU0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxl
VmFsdWVzLCBKU0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5m
byBKU0RPTVdpbmRvd1Byb3RvdHlwZTo6c19pbmZvID0geyAiRE9NV2luZG93IiwgJkJhc2U6OnNf
aW5mbywgJkpTRE9NV2luZG93UHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNET01XaW5kb3dQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNET01XaW5kb3dQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpLCBK
U0RPTVdpbmRvd1Byb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgSlNDX1RPX1NUUklO
R19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpT
RE9NV2luZG93SW5zdGFuY2VfVGVzdEVuYWJsZWRGb3JDb250ZXh0KFZNJiB2bSwgSlNPYmplY3Qq
KQotewotICAgIHJldHVybiBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNET01XaW5k
b3dfVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIG51bGxwdHIpOwotfQotCi1zdGF0
aWMgYm9vbCBpc0VuYWJsZWRKU0RPTVdpbmRvd0luc3RhbmNlX1Rlc3RFbmFibGVkRm9yQ29udGV4
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9i
YWxPYmplY3QpOwotICAgIHJldHVybiAoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBU
ZXN0RW5hYmxlZEZvckNvbnRleHQ6OmVuYWJsZWRGb3JDb250ZXh0KCpqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKTsKLX0K
LQotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBD
b21wYWN0SGFzaEluZGV4IEpTRE9NV2luZG93SW5zdGFuY2VUYWJsZUluZGV4WzM3XSA9IHsKK3N0
YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU0RPTVdpbmRvd1RhYmxlSW5kZXhb
MzddID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA1LCAzNSB9LAogICAgIHsgLTEsIC0xIH0s
CkBAIC0xNTYsOCArMTA3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTRE9NV2luZG93SW5zdGFuY2VUYWJsZUluZGV4WzM3XSA9IHsKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDcsIC0xIH0sCi0gICAgeyAx
MCwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgOSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTE2NiwzNCArMTE3LDcwIEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU0RPTVdpbmRvd0luc3RhbmNl
VGFibGVJbmRleFszN10gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDMsIDM0IH0sCiAgICAg
eyA2LCAzNiB9LAorICAgIHsgNywgLTEgfSwKICAgICB7IDgsIC0xIH0sCi0gICAgeyA5LCAtMSB9
LAotICAgIHsgMTEsIC0xIH0sCisgICAgeyAxMCwgLTEgfSwKIH07CiAKIAotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTRE9NV2luZG93SW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KK3N0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RPTVdpbmRvd1RhYmxlVmFsdWVzW10gPQogewotICAg
IHsgIkRPTVdpbmRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfRE9NV2luZG93Q29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCi0gICAgeyAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c0RPTVdpbmRvd19FeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0g
fSwKLSAgICB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3df
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0RGVm
YXVsdFRvSlNPTiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdEVuYWJsZWRCeVNldHRpbmci
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxs
cHRyKSB9IH0sCi0gICAgeyAiVGVzdEVuYWJsZWRGb3JDb250ZXh0IiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxi
YWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2Fs
bGJhY2s+KGNyZWF0ZUpTRE9NV2luZG93SW5zdGFuY2VfVGVzdEVuYWJsZWRGb3JDb250ZXh0KSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNF
bmFibGVkSlNET01XaW5kb3dJbnN0YW5jZV9UZXN0RW5hYmxlZEZvckNvbnRleHQpIH0gfSwKKyAg
ICB7ICJET01XaW5kb3ciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X0RPTVdpbmRvd0NvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorICAgIHsgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01X
aW5kb3dfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAi
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdERlZmF1bHRUb0pTT04iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
RE9NV2luZG93X1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsg
IlRlc3RFbmFibGVkQnlTZXR0aW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMikKLSAgICB7ICJUZXN0SW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRv
d19UZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCisgICAgeyAiVGVzdEludGVy
ZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0g
ICAgeyAiVGVzdE5vZGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3ROb2RlQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdE9iamVjdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVz
dE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJUZXN0Tm9kZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01X
aW5kb3dfVGVzdE5vZGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0T2JqZWN0Iiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc0RPTVdpbmRvd19UZXN0T2JqZWN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU0RPTVdpbmRvd1RhYmxlID0geyAxMSwgMzEsIHRydWUsIEpTRE9NV2luZG93OjppbmZv
KCksIEpTRE9NV2luZG93VGFibGVWYWx1ZXMsIEpTRE9NV2luZG93VGFibGVJbmRleCB9OwordGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiRE9NV2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0RPTUNvbnN0cnVjdG9yKSB9OworCit0ZW1wbGF0ZTw+
IEpTVmFsdWUgSlNET01XaW5kb3dET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorewor
ICAgIHJldHVybiBKU0V2ZW50VGFyZ2V0OjpnZXRDb25zdHJ1Y3Rvcih2bSwgJmdsb2JhbE9iamVj
dCk7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBKU0RPTVdpbmRvd0RPTUNvbnN0cnVjdG9yOjppbml0
aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2Jh
bE9iamVjdC5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJET01XaW5kb3ciX3MpLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOworfQorCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
Kworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTRE9NV2luZG93UHJvdG90
eXBlVGFibGVJbmRleFsyXSA9IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgMCwgLTEgfSwKK307
CisKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTRE9NV2luZG93UHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTRE9NV2lu
ZG93SW5zdGFuY2VUYWJsZSA9IHsgMTIsIDMxLCB0cnVlLCBKU0RPTVdpbmRvdzo6aW5mbygpLCBK
U0RPTVdpbmRvd0luc3RhbmNlVGFibGVWYWx1ZXMsIEpTRE9NV2luZG93SW5zdGFuY2VUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3c6OnNfaW5mbyA9IHsgIkRPTVdpbmRv
dyIsICZCYXNlOjpzX2luZm8sICZKU0RPTVdpbmRvd0luc3RhbmNlVGFibGUsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3cpIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxl
IEpTRE9NV2luZG93UHJvdG90eXBlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTRE9NV2luZG93Ojpp
bmZvKCksIEpTRE9NV2luZG93UHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTRE9NV2luZG93UHJvdG90
eXBlVGFibGVJbmRleCB9OworY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93UHJvdG90eXBlOjpz
X2luZm8gPSB7ICJET01XaW5kb3ciLCAmQmFzZTo6c19pbmZvLCAmSlNET01XaW5kb3dQcm90b3R5
cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd1Byb3RvdHlw
ZSkgfTsKKwordm9pZCBKU0RPTVdpbmRvd1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICByZWlmeVN0YXRpY1Byb3Bl
cnRpZXModm0sIEpTRE9NV2luZG93OjppbmZvKCksIEpTRE9NV2luZG93UHJvdG90eXBlVGFibGVW
YWx1ZXMsICp0aGlzKTsKKyAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04o
KTsKK30KKworY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93OjpzX2luZm8gPSB7ICJET01XaW5k
b3ciLCAmQmFzZTo6c19pbmZvLCAmSlNET01XaW5kb3dUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU0RPTVdpbmRvdykgfTsKIAogSlNET01XaW5kb3c6OkpTRE9NV2luZG93KFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxET01XaW5kb3c+JiYgaW1wbCwgSlNXaW5k
b3dQcm94eSogcHJveHkpCiAgICAgOiBKU0V2ZW50VGFyZ2V0KHZtLCBzdHJ1Y3R1cmUsIFdURk1v
dmUoaW1wbCksIHByb3h5KQpAQCAtMjA2LDcgKzE5Myw4IEBAIHZvaWQgSlNET01XaW5kb3c6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXaW5kb3dQcm94eSogcHJveHkpCiAKICAgICBzdGF0aWNf
YXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBET01XaW5kb3c+Ojp2YWx1
ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhv
dWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOwog
Ci0gICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLlRlc3RFbmFibGVkQnlTZXR0aW5n
UHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzRE9NV2luZG93
X1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIG51bGxwdHIpLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tVmFsdWUpKTsKKyAgICBpZiAo
KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBUZXN0RW5hYmxlZEZvckNvbnRleHQ6
OmVuYWJsZWRGb3JDb250ZXh0KCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpKQorICAgICAgICBwdXREaXJlY3RDdXN0
b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KS0+YnVpbHRpbk5hbWVzKCkuVGVzdEVuYWJsZWRGb3JDb250ZXh0UHVibGljTmFtZSgpLCBDdXN0
b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNET01XaW5kb3dfVGVzdEVuYWJsZWRGb3JDb250
ZXh0Q29uc3RydWN0b3IsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsKIH0KIAog
SlNWYWx1ZSBKU0RPTVdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cuaAppbmRleCA2OTJjYmEwY2MyZTIwZmNhZTY0
YTI4YjAyZTM4MDk5NzQ2MjQyNzIwLi44MmM5OTY5YjQ1MWNhMzU3OGE2NTZjNzdlMWJlNDgxZWE5
NWRlZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNET01XaW5kb3cuaApAQCAtOTksOCArOTksNiBAQCBwcml2YXRlOgogICAgIH0KIAog
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJT
UEFDRV9TSEFSQUJMRShKU0RPTVdpbmRvd1Byb3RvdHlwZSwgSlNET01XaW5kb3dQcm90b3R5cGU6
OkJhc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAK
aW5kZXggY2JmNGNlYzUzM2E4ZDJkNDc0MDNlZGYyZjI5YjNkMDM3ZDA4OWFhYi4uYmM0YzdhZWU5
ZTQ3MmZmOWQyZTFiMDM2NDY2Mjk3NGJkNjEyZjBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTMsNyArNTMsMjAgQEAgc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZV9EZWRpY2F0
ZWRXb3JrZXJHbG8KIAogdXNpbmcgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOworLyogSGFzaCB0YWJsZSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVRhYmxlSW5kZXhbMl0g
PSB7CisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDAsIC0xIH0sCit9OworCisKK3N0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlVGFibGVWYWx1ZXNb
XSA9Cit7CisgICAgeyAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVfRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlOjppbmZvKCksIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywg
SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVRhYmxlSW5kZXggfTsKIHRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAt
NjgsNyArODEsNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcwogICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLworLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKICAgICB7IC0xLCAt
MSB9LApAQCAtOTEsMjEgKzEwNCw3IEBAIHZvaWQgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJTkdfVEFH
X1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBJbnN0YW5jZSAq
LwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUluc3RhbmNlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMCwgLTEgfSwKLX07Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsg
IkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlX0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9
IH0sCi19OwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVJbnN0YW5jZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlOjppbmZvKCksIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxl
VmFsdWVzLCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZUluZGV4IH07
Ci1jb25zdCBDbGFzc0luZm8gSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6c19pbmZvID0g
eyAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUluc3RhbmNlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sICZKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZSkgfTsKIAogSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6SlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8RGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU+JiYgaW1wbCkKICAgICA6IEpTV29ya2VyR2xvYmFsU2NvcGUo
dm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5oCmluZGV4IGEyZmE3MmJlODkwZGZlOTU1NzM2YmE0OGVmNTYyY2E1Mzdl
ZDJhMjAuLjg4YzlkNzEyOGEwZTc2MTcyMmQ2ZmZkZGFmMTE5ZmQ4ZjRmMGMzMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtOTYsOCArOTYsNiBAQCBw
cml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFU
SUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlUHJvdG90eXBlLCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBlOjpCYXNl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAKaW5kZXggZGRi
ZmIzYzhkNjUxODg4ODA3NzRlZTNkNTNkYjc1YjRiNzUzMzQzNi4uMjkxYzY2ODJjMWUzYjZlNzcy
ZDdkYTUxMTlhMDJjYWJmZTZjYzkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3cuY3BwCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGUsIEpTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93UHJvdG90eXBlOjpCYXNlKTsKIApAQCAtMTUwLDcgKzE0OCw2IEBAIHRl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93RE9NCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU0V4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCi10ZW1wbGF0ZTw+
IGNvbnN0IHVuc2lnbmVkIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93RE9NQ29uc3RydWN0b3I6
OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
RE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xNjYsMTUgKzE2
Myw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0
cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFz
aCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZVRhYmxlSW5kZXhbNF0g
PSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CiB7CkBAIC0xODIsOCArMTcxLDcgQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9CiAgICAgeyAiZG9Tb21ldGhpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJv
dG90eXBlRnVuY3Rpb25fZG9Tb21ldGhpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1z
dGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBl
VGFibGUgPSB7IDIsIDMsIHRydWUsIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjppbmZvKCks
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZv
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlOjpzX2luZm8gPSB7ICJFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3ciLCAmQmFzZTo6c19pbmZvLCAmSlNFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3dQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZTo6c19pbmZvID0geyAiRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZSkgfTsKIAogdm9pZCBK
U0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGE2NTJk
ZTUxYWUzNzI0MzNlMmEwNDkzMmYyZGZiODA0ZGNjZmQxYmEuLjUxM2ZhOWRiZTFhN2ZhMTU3OGQ0
NDRjZDc5ZTkxODdhY2IzN2I3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZS5jcHAKQEAgLTUzLDcgKzUzLDIwIEBAIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVfUGFpbnRXb3JrbGV0R2xvYmFsU2NvCiAKIHVz
aW5nIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+OwogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1
Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKy8qIEhhc2ggdGFi
bGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVUYWJsZUluZGV4WzJdID0geworICAgIHsgLTEsIC0xIH0sCisgICAgeyAw
LCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNQYWludFdvcmts
ZXRHbG9iYWxTY29wZVRhYmxlVmFsdWVzW10gPQoreworICAgIHsgIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlX1BhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCit9OworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxl
IEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNQYWludFdv
cmtsZXRHbG9iYWxTY29wZTo6aW5mbygpLCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlVGFibGVW
YWx1ZXMsIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZUluZGV4IH07CiB0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTY4LDcgKzgx
LDcgQEAgdGVtcGxhdGU8PiB2b2lkIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1
Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNo
IHRhYmxlIGZvciBQcm90b3R5cGUgKi8KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwog
CiBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNQYWludFdvcmtsZXRHbG9i
YWxTY29wZVByb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7CiAgICAgeyAtMSwgLTEgfSwKQEAgLTkx
LDIxICsxMDQsNyBAQCB2b2lkIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5T
SVRJT04oKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVJbnN0
YW5jZVRhYmxlSW5kZXhbMl0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi19
OwotCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlSW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJQYWludFdvcmtsZXRHbG9iYWxT
Y29wZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNQYWludFdvcmtsZXRHbG9iYWxTY29wZV9QYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotfTsKLQotc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZSA9IHsgMSwgMSwgdHJ1
ZSwgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6aW5mbygpLCBKU1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlSW5zdGFuY2VUYWJsZVZhbHVlcywgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUluc3Rh
bmNlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGU6OnNfaW5mbyA9IHsgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywg
JkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6c19pbmZvID0geyAiUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVRhYmxl
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUp
IH07CiAKIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OkpTUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPFBhaW50V29ya2xldEdsb2JhbFNj
b3BlPiYmIGltcGwpCiAgICAgOiBKU1dvcmtsZXRHbG9iYWxTY29wZSh2bSwgc3RydWN0dXJlLCBX
VEZNb3ZlKGltcGwpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXgg
NWQzZmE1MTY2NzI4M2FhMDlhYTIxZjFjMTFiYmU4ZmRmYjBhMzYxZS4uODQzYjVhMDg3OWYzZGEx
OTk1MDRiNzk4ZDBlY2MzMDU4MmVmMzg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9i
YWxTY29wZS5oCkBAIC05Niw4ICs5Niw2IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVQcm90b3R5cGU6OkJhc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmNwcAppbmRleCA3NzM0NWQ5ODJlYzVlZjQ3YTBiYzM3ZWUyNjZiMDAzZjJkNmNj
NTIyLi5jNDk3ODc1ZjVjODhhYjMxZGNkNDk2MGQ2Mzg5Y2U5ZjQ5YzRjYTE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTUzLDcgKzUzLDIwIEBAIHN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
X1NlcnZpY2VXb3JrZXJHbG9iYWxTCiAKIHVzaW5nIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKKy8qIEhhc2ggdGFibGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlVGFibGVJbmRleFsy
XSA9IHsKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgMCwgLTEgfSwKK307CisKKworc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlVGFibGVWYWx1ZXNb
XSA9Cit7CisgICAgeyAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZV9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6Omlu
Zm8oKSwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURP
TUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC02OCw3ICs4MSw3IEBAIHRlbXBsYXRl
PD4gdm9pZCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjppbml0aWFs
aXplUHJvcGVydGllcyhWCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJv
dG90eXBlICovCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlUHJvdG90
eXBlVGFibGVJbmRleFsyXSA9IHsKICAgICB7IC0xLCAtMSB9LApAQCAtOTEsMjEgKzEwNCw3IEBA
IHZvaWQgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSkKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0K
IAotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBD
b21wYWN0SGFzaEluZGV4IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZUlu
ZGV4WzJdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotfTsKLQotCi1zdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVJbnN0YW5j
ZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVfU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi19OwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpT
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmluZm8oKSwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVJbnN0YW5jZVRhYmxlVmFsdWVzLCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUluc3RhbmNl
VGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
OjpzX2luZm8gPSB7ICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAm
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCAmSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVU
YWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSkgfTsKIAogSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OkpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+JiYgaW1wbCkKICAgICA6IEpTV29ya2VyR2xvYmFsU2NvcGUodm0sIHN0cnVj
dHVyZSwgV1RGTW92ZShpbXBsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmgKaW5kZXggZGNjYzlhMjAxYmJhZWMyYjk3MGVkNGY2OTVkZGU4NjEyMTY3OWFmNy4uZmUxNzUy
N2E4NjlhZjg5OGI0MzI0YjlhODk2ODcwMjZhNDBiMzk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTk2LDggKzk2LDYgQEAgcHJpdmF0ZToKICAgICB9CiAK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VC
U1BBQ0VfU0hBUkFCTEUoSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBlOjpCYXNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9ucy5jcHAKaW5kZXggNzhmNzM4NjE2NzZmNTllMzVlM2MxYWE0Y2Q4MWIzOTY0NDMyMTZlZi4u
Yjg3OGI0NmUxOTExNGU4OGM2YmIzMzFiOTY3MzQwNGFlZjQ3ZjE0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VS
ZWFjdGlvbnMuY3BwCkBAIC0xMDQsMTQgKzEwNCwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpT
Qzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFD
RV9TSEFSQUJMRShKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSwgSlNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RDRVJlYWN0aW9uc0RPTUNvbnN0cnVjdG9y
ID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0Q0VSZWFjdGlvbnM+Owog
Ci10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdENFUmVhY3Rpb25zRE9NQ29uc3RydWN0
b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RDRVJlYWN0aW9uc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0Q0VSZWFjdGlvbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rpb25zRE9NQ29uc3RydWN0b3IpIH07CiAKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RDRVJlYWN0aW9uc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0xMjcsNjAgKzEyNCwyMiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Q0VS
ZWFjdGlvbnNET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKUwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0
aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5
cGVUYWJsZUluZGV4WzMzXSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAy
LCAtMSB9LAotICAgIHsgNSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgOCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAzLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgMzIgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNiwgLTEg
fSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
IHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKLSAgICB7ICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpIH0gfSwK
LSAgICB7ICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnMpIH0gfSwKLSAgICB7ICJzdHJpbmdpZmllckF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJhdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpIH0gfSwK
LSAgICB7ICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RBdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpIH0gfSwKLSAgICB7ICJzdHJpbmdpZmllckF0
dHJpYnV0ZU5vdE5lZWRlZCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENF
UmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlv
bnNfc3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpIH0gfSwKKyAgICB7ICJhdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucykgfSB9LAorICAgIHsg
InJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc19yZWZsZWN0QXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zKSB9IH0sCisgICAgeyAic3RyaW5naWZpZXJBdHRyaWJ1dGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlvbnNfc3Ry
aW5naWZpZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNO
b3ROZWVkZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRl
ZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCkg
fSB9LAorICAgIHsgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENFUmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RDRVJlYWN0aW9uc19yZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
KSB9IH0sCisgICAgeyAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rp
b25zX3N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlvbnNfc3Ry
aW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpIH0gfSwKICAgICB7ICJtZXRob2RXaXRoQ0VSZWFj
dGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aENFUmVh
Y3Rpb25zKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1zdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlVGFibGUgPSB7IDksIDMx
LCB0cnVlLCBKU1Rlc3RDRVJlYWN0aW9uczo6aW5mbygpLCBKU1Rlc3RDRVJlYWN0aW9uc1Byb3Rv
dHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZVRhYmxlSW5kZXggfTsK
LWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdENFUmVhY3Rpb25zIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdENFUmVhY3Rpb25zUHJvdG90
eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3RDRVJlYWN0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGUpIH07
CiAKIHZvaWQgSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRl
eCA1YWUwYWMyZGQ4MGJkZDZjZWE2ODhhYTY3MGMzMmU4ZmU0MDU3YzFmLi5jYTM4MjkxMGY3NTIy
YmU1ZjY4NjEwYTE4ZmMxOWNkYjFmYjUyNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXIuY3BwCkBAIC04OSwxNCArODksMTEgQEAgcHJpdmF0ZToKICAgICB9
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSwg
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OwogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25z
dHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRl
PD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQpAQCAtMTEyLDMwICsxMDksMTcgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90
b3R5cGVUYWJsZUluZGV4WzhdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQorLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAg
eyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJ2YWx1ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJfdmFsdWUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyX3ZhbHVlKSB9IH0sCi0gICAgeyAidmFsdWVXaXRob3V0UmVhY3Rpb25zIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
cl92YWx1ZVdpdGhvdXRSZWFjdGlvbnMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyX3Zh
bHVlV2l0aG91dFJlYWN0aW9ucykgfSB9LAorICAgIHsgInZhbHVlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyX3ZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcl92YWx1ZSkgfSB9
LAorICAgIHsgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
cl92YWx1ZVdpdGhvdXRSZWFjdGlvbnMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyX3Zh
bHVlV2l0aG91dFJlYWN0aW9ucykgfSB9LAogICAgIHsgInRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgw
KSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJQcm90b3R5cGVUYWJsZSA9IHsgNCwgNywgdHJ1ZSwgSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllcjo6aW5mbygpLCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBl
VGFibGVWYWx1ZXMsIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZVRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxU
cmFjZXIuY3BwCmluZGV4IDVjNTAzYTg2NWY5YTU5NDYwN2I2MDZmZmE5NzQzZjFiNDgyNDQ1ODIu
LmNhOWM5NmRiZjIyODNlYTQ1MzFlZWUwZjk4OGJmZjY1MjA2MWNhYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2Fs
bFRyYWNlci5jcHAKQEAgLTExMSwzMSArMTExLDIxIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlND
OjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNF
X1NIQVJBQkxFKEpTVGVzdENhbGxUcmFjZXJQcm90b3R5cGUsIEpTVGVzdENhbGxUcmFjZXJQcm90
b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RDYWxsVHJhY2VyRE9NQ29uc3RydWN0b3IgPSBK
U0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RDYWxsVHJhY2VyPjsKIAotLyog
SGFzaCB0YWJsZSBmb3IgQ29uc3RydWN0b3IgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclRhYmxlSW5kZXhbMl0gPSB7
Ci0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZv
ciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2Fs
bFRyYWNlckNvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAidGVzdENvbnN0VmFs
dWUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVn
ZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKGZhbHNlKSB9IH0sCisgICAgeyAidGVzdENv
bnN0VmFsdWUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFu
dEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKGZhbHNlKSB9IH0sCiB9OwogCi1z
dGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclRhYmxlID0g
eyAxLCAxLCB0cnVlLCBudWxscHRyLCBKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JUYWJsZVZh
bHVlcywgSlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yVGFibGVJbmRleCB9Owogc3RhdGljX2Fz
c2VydChUZXN0Q2FsbFRyYWNlcjo6dGVzdENvbnN0VmFsdWUgPT0gZmFsc2UsICJ0ZXN0Q29uc3RW
YWx1ZSBpbiBUZXN0Q2FsbFRyYWNlciBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwog
Ci10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdENhbGxUcmFjZXJET01Db25zdHJ1Y3Rv
cjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGlj
UHJvcGVydHlUYWJsZTsKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENhbGxUcmFj
ZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENhbGxUcmFjZXIiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yVGFibGUsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0Q2FsbFRyYWNlckRPTUNvbnN0cnVjdG9yKSB9OwordGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q2FsbFRyYWNlckRPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0Q2FsbFRyYWNlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q2FsbFRyYWNlckRPTUNvbnN0cnVjdG9yKSB9OwogCiB0
ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q2FsbFRyYWNlckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CkBAIC0xNDgsNTUgKzEzOCwxOCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
Q2FsbFRyYWNlckRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpT
RAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RD
YWxsVHJhY2VyOjpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlRlc3RDYWxsVHJhY2Vy
Il9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIG51bGxwdHIsIEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAq
dGhpcyk7Ci19Ci0KLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZVRhYmxl
SW5kZXhbMzNdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDYs
IC0xIH0sCi0gICAgeyAxMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgMzIgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4LCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxMywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgNSwgLTEgfSwKLSAgICB7IDExLCAtMSB9LAotICAgIHsgNCwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgOSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMsIC0xIH0sCi19Owor
ICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0Q2FsbFRyYWNlcjo6aW5mbygpLCBK
U1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JUYWJsZVZhbHVlcywgKnRoaXMpOworfQogCisvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdENhbGxUcmFjZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25z
dHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAg
IHsgInRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDYWxsVHJh
Y2VyX3Rlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpIH0gfSwKLSAgICB7ICJ0ZXN0QXR0cmlidXRlU3Bl
Y2lmaWVkIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90
ZXN0QXR0cmlidXRlU3BlY2lmaWVkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlU3Bl
Y2lmaWVkKSB9IH0sCi0gICAgeyAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50IiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlV2l0aFZh
cmlhbnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCkgfSB9LAot
ICAgIHsgInRlc3RSZWFkb25seUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90
ZXN0UmVhZG9ubHlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZUlu
dGVyZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlSW50ZXJmYWNlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q2Fs
bFRyYWNlcl90ZXN0QXR0cmlidXRlSW50ZXJmYWNlKSB9IH0sCisgICAgeyAidGVzdEF0dHJpYnV0
ZVNwZWNpZmllZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlU3BlY2lmaWVkKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlU3BlY2lmaWVkKSB9IH0sCisgICAgeyAidGVzdEF0dHJp
YnV0ZVdpdGhWYXJpYW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KSB9IH0sCisgICAgeyAi
dGVzdFJlYWRvbmx5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdENhbGxUcmFjZXJfdGVzdFJlYWRvbmx5QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgInRlc3RP
cGVyYXRpb25JbnRlcmZhY2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0
T3BlcmF0aW9uSW50ZXJmYWNlKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInRlc3RPcGVy
YXRpb25TcGVjaWZpZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3Bl
cmF0aW9uU3BlY2lmaWVkKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInRlc3RPcGVyYXRp
b25XaXRoQXJndW1lbnRzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9w
ZXJhdGlvbldpdGhBcmd1bWVudHMpLCAoaW50cHRyX3QpICgzKSB9IH0sCkBAIC0yMDUsMTEgKzE1
OCwxMCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgInRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJp
YW50QXJndW1lbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0
aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KSwgKGludHB0cl90KSAoMSkgfSB9LAogICAg
IHsgInRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFy
Z3VtZW50KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInRlc3RPcGVyYXRpb25XaXRoRGVm
YXVsdFZhcmlhbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rl
c3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCksIChpbnRwdHJfdCkgKDApIH0g
fSwKLSAgICB7ICJ0ZXN0Q29uc3RWYWx1ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoZmFs
c2UpIH0gfSwKKyAgICB7ICJ0ZXN0Q29uc3RWYWx1ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9u
ZykoZmFsc2UpIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0Q2FsbFRy
YWNlclByb3RvdHlwZVRhYmxlID0geyAxNCwgMzEsIHRydWUsIEpTVGVzdENhbGxUcmFjZXI6Omlu
Zm8oKSwgSlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RDYWxsVHJh
Y2VyUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDYWxsVHJhY2VyIiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdENhbGxUcmFjZXJQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dENhbGxUcmFjZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDYWxsVHJhY2VyIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdENhbGxUcmFjZXJQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2Uu
Y3BwCmluZGV4IGZlZDhlOWJjMDlmMWE3MTc4ZWMyN2Y5MGM2NmU0OTE4NDRmNTM3YmIuLmZmNWRi
MTc3MWFkOTVjYzk3YzYzNWE2OWE2ZmQxZjY2MmI1MWQzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrSW50ZXJmYWNlLmNwcApAQCAtMTQyLDI4ICsxNDIsMTggQEAgSlNUZXN0Q2FsbGJhY2tJ
bnRlcmZhY2U6On5KU1Rlc3RDYWxsYmFja0ludGVyZmFjZSgpCiAKIHVzaW5nIEpTVGVzdENhbGxi
YWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0
YWJsZTxKU1Rlc3RDYWxsYmFja0ludGVyZmFjZT47CiAKLS8qIEhhc2ggdGFibGUgZm9yIENvbnN0
cnVjdG9yICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RD
YWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IDEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLX07
Ci0KKy8qIEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXNb
XSA9CiB7Ci0gICAgeyAiQ09OU1RBTlQxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9
IH0sCi0gICAgeyAiQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0s
CisgICAgeyAiQ09OU1RBTlQxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0sCisg
ICAgeyAiQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0
b3JUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgbnVsbHB0ciwgSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2VD
b25zdHJ1Y3RvclRhYmxlVmFsdWVzLCBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9y
VGFibGVJbmRleCB9Owogc3RhdGljX2Fzc2VydChUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkNPTlNU
QU5UMSA9PSAxLCAiQ09OU1RBTlQxIGluIFRlc3RDYWxsYmFja0ludGVyZmFjZSBkb2VzIG5vdCBt
YXRjaCB2YWx1ZSBmcm9tIElETCIpOwogc3RhdGljX2Fzc2VydChUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2U6OkNPTlNUQU5UMiA9PSAyLCAiQ09OU1RBTlQyIGluIFRlc3RDYWxsYmFja0ludGVyZmFjZSBk
b2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2ln
bmVkIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Ci10
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZURPTUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07
Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENhbGxiYWNr
SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RD
YWxsYmFja0ludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApp
bmRleCBlNTJmNmQyZDViNDg1Y2ZkZDkxNzE3NTY3NjRmNzg0NzYzMjg3M2Y0Li45M2JkNjAxOTZk
OGVkZjdjYzcyNzY3NzA1MTJhMDIxNGJiZGM5ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTc4LDE0ICs3OCwxMSBA
QCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwot
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBT
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3RvclByb3RvdHlwZSwgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3JQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckRPTUNvbnN0cnVjdG9yID0gSlNET01CdWlsdGluQ29uc3RydWN0b3I8SlNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVk
IEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3I6OlN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpw
cm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCkBAIC0xMDYsMjEgKzEwMywxNCBAQCB0ZW1wbGF0ZTw+IEZ1bmN0aW9u
RXhlY3V0YWJsZSogSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JET01Db25zdHJ1
Y3RvcgogICAgIHJldHVybiB0ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JJbml0aWFs
aXplVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSk7CiB9
CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90
b3R5cGVUYWJsZUluZGV4WzJdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAot
fTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3Rv
dHlwZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6aW5mbygpLCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlw
ZVRhYmxlVmFsdWVzLCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlw
ZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3RvclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3JQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAppbmRleCAxNjcwZWM0YmEyZDBkYTM5
NDNhYWZiZWI0NjdhYzI4NjQzY2M0NTM5Li4wZjczZGQ2NDY4ZGNhM2YzNWY0MTNkZDUwYTBhZTE5
OGEzNzNlNDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCkBA
IC0xNDEsODYgKzE0MSwzMiBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlLCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0RPTUNv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcz47CiAKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXND
b25zdHJ1Y3Rvcl9NSVhJTl9DT05TVEFOVChWTSYsIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4g
anNOdW1iZXIoMSk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3Rvcl9NSVhJTl9DT05TVEFOVChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZDsKLX0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0
aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JfTUlY
SU5fUkVGTEVDVEVEX0NPTlNUQU5UKFZNJiwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBqc051
bWJlcigyKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc0NvbnN0cnVjdG9yX01JWElOX1JFRkxFQ1RFRF9DT05TVEFOVChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJl
dHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZDsKLX0K
LSNlbmRpZgotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0
b3JfUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwoVk0mLCBKU09iamVjdCopCi17
Ci0gICAgcmV0dXJuIGpzTnVtYmVyKDUpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JfUEFSVElBTF9NSVhJTl9DT05TVEFOVF9G
Uk9NX1BBUlRJQUwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURf
UEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVl
cygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQotLyogSGFzaCB0YWJsZSBmb3Ig
Q29uc3RydWN0b3IgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvclRhYmxlSW5kZXhbOF0gPSB7Ci0gICAg
eyAxLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogewogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotICAgIHsgIk1JWElOX0NPTlNUQU5UIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JfTUlYSU5fQ09OU1RBTlQpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JfTUlYSU5fQ09OU1RBTlQpIH0gfSwKKyAg
ICB7ICJNSVhJTl9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAog
I2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAiTUlYSU5f
UkVGTEVDVEVEX0NPTlNUQU5UIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29u
c3RydWN0b3JfTUlYSU5fUkVGTEVDVEVEX0NPTlNUQU5UKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc0NvbnN0cnVjdG9yX01JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCkgfSB9LAorICAg
IHsgIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZyko
MikgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAg
eyAiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcl9QQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01f
UEFSVElBTCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2Fs
bGJhY2s+KGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcl9QQVJU
SUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCkgfSB9LAorICAgIHsgIlBBUlRJQUxfTUlY
SU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSg1KSB9
IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYK
IH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0Nv
bnN0cnVjdG9yVGFibGUgPSB7IDMsIDcsIHRydWUsIG51bGxwdHIsIEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Q29uc3RydWN0b3JUYWJsZUluZGV4IH07CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCiBzdGF0aWNfYXNzZXJ0KFRlc3RDb25kaXRpb25hbEluY2x1ZGVzOjpN
SVhJTl9DT05TVEFOVCA9PSAxLCAiTUlYSU5fQ09OU1RBTlQgaW4gVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXMgZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKICNlbmRpZgpAQCAtMjMxLDgg
KzE3Nyw3IEBAIHN0YXRpY19hc3NlcnQoVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OkNPTlNUX0lN
UEwgPT0gMiwgIkNPTlNUX0lNUEwgaW4gVGVzdENvbmRpCiBzdGF0aWNfYXNzZXJ0KFRlc3RDb25k
aXRpb25hbEluY2x1ZGVzOjpQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCA9PSA1
LCAiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwgaW4gVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXMgZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKICNlbmRpZgogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNET01Db25zdHJ1
Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXMiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc0RPTUNvbnN0cnVjdG9yKSB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0RPTUNvbnN0cnVjdG9y
KSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0RPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yNDUsMzY0ICsxOTAsMjYwIEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzRE9NQ29uc3RydWN0b3I6Omlu
aXRpYWxpemVQcm9wZXJ0aWVzKFZNCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OnByb3RvdHlwZSh2bSwgZ2xv
YmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2
aWFsU3RyaW5nKHZtLCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiX3MpLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOwotICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgbnVsbHB0ciwgSlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKLX0K
LQotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGlj
IEpTVmFsdWUgY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpblJl
YWRPbmx5QXR0cmlidXRlKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRy
aWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19t
aXhpblJlYWRPbmx5QXR0cmlidXRlLCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsg
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlczo6aW5mbygpLCBudWxscHRyIH0pOwotfQotCi1zdGF0
aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGlu
UmVhZE9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBV
TlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5n
c1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIEpTVmFsdWUgY3JlYXRl
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbkF0dHJpYnV0ZShWTSYgdm0s
IEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGUsIHNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZUFubm90YXRp
b24geyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzOjppbmZvKCksIG51bGxwdHIgfSk7Ci19Ci0K
LXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVf
bWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1Zh
bHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbkN1c3RvbUF0dHJpYnV0ZShWTSYg
dm0sIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpj
cmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5DdXN0b21BdHRyaWJ1dGUs
IHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5DdXN0b21BdHRyaWJ1dGUsIERPTUF0
dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzOjppbmZvKCksIG51
bGxwdHIgfSk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVfbWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19Ci0jZW5k
aWYKLQotI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3Rh
dGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhp
bk5vZGVBdHRyaWJ1dGUoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIERPTUF0dHJp
YnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX21p
eGluTm9kZUF0dHJpYnV0ZSwgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbk5vZGVB
dHRyaWJ1dGUsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzOjppbmZvKCksIG51bGxwdHIgfSk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfbWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7
Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFi
bGVkOwotfQotI2VuZGlmCi0KKyAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXM6OmluZm8oKSwgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNQcm90b3R5cGVfcGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoVk0mIHZt
LCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIERPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3Jl
YXRlKHZtLCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX3BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZy
b21QYXJ0aWFsLCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlczo6aW5mbygpLCBudWxscHRyIH0pOwotfQotCi1zdGF0aWMgYm9vbCBpc0Vu
YWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX3BhcnRpYWxNaXhpbkF0dHJp
YnV0ZUZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NW
YWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkOwotfQotI2VuZGlmCi0KLSNpZiAoRU5BQkxFKENv
bmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
X21peGluT3BlcmF0aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0
dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAs
ICJtaXhpbk9wZXJhdGlvbiJfcywganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1
bmN0aW9uX21peGluT3BlcmF0aW9uKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbk9wZXJhdGlvbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAg
IHJldHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZDsK
LX0KLSNlbmRpZgotCi0jaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlv
bjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbkNvbXBsZXhPcGVyYXRpb24oVk0mIHZt
LCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMiwgIm1peGluQ29tcGxleE9wZXJhdGlv
biJfcywganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluQ29t
cGxleE9wZXJhdGlvbik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVfbWl4aW5Db21wbGV4T3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAg
cmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkOwot
fQotI2VuZGlmCi0KLSNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9u
MjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluQ3VzdG9tT3BlcmF0aW9uKFZNJiB2bSwg
SlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAsICJtaXhpbkN1c3RvbU9wZXJhdGlvbiJf
cywganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluQ3VzdG9t
T3BlcmF0aW9uKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc1Byb3RvdHlwZV9taXhpbkN1c3RvbU9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVy
biBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZDsKLX0KLSNl
bmRpZgotCi0jaWYgKEVOQUJMRShDb25kaXRpb24xMSkgJiYgRU5BQkxFKENvbmRpdGlvbjEyKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgSlNW
YWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluQ29uZGl0
aW9uYWxPcGVyYXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1
cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwg
Im1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iX3MsIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbl9taXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKTsKLX0KLQotc3RhdGlj
IGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbkNv
bmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAg
VU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGlu
Z3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkOwotfQotI2VuZGlmCi0KLSNpZiAoRU5BQkxF
KENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MjMpCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlX21peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0
aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLCAwLCAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9u
Il9zLCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0
aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpblNldHRpbmdzQ29uZGl0aW9uYWxP
cGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFS
QU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMo
KS50ZXN0U2V0dGluZ0VuYWJsZWQgJiYganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RT
ZXR0aW5nMkVuYWJsZWQpOwotfQotI2VuZGlmCi0KLSNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgSlNW
YWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluUmVzdWx0
RmllbGRPcGVyYXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1
cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwg
Im1peGluUmVzdWx0RmllbGRPcGVyYXRpb24iX3MsIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbl9taXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTsKLX0KLQotc3RhdGlj
IGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpblJl
c3VsdEZpZWxkT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAg
VU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGlu
Z3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkOwotfQotI2VuZGlmCi0KLSNpZiAoRU5BQkxF
KENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24z
MykpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRp
YWwoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwgInBhcnRpYWxNaXhp
bk9wZXJhdGlvbkZyb21QYXJ0aWFsIl9zLCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlRnVuY3Rpb25fcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpOwotfQotCi1zdGF0
aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX3BhcnRp
YWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Ci17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkOwotfQorICAgIGlmICghanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkKSB7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJNSVhJTl9DT05TVEFOVCIpLCBzdHJsZW4oIk1JWElOX0NP
TlNUQU5UIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0s
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CiAjZW5kaWYK
LQogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGlj
IEpTVmFsdWUgY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9NSVhJTl9D
T05TVEFOVChWTSYsIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4ganNOdW1iZXIoMSk7Ci19Ci0K
LXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVf
TUlYSU5fQ09OU1RBTlQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1Zh
bHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0
aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCIpLCBzdHJsZW4oIk1JWElOX1JFRkxF
Q1RFRF9DT05TVEFOVCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQog
I2VuZGlmCi0KICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
LXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVf
TUlYSU5fUkVGTEVDVEVEX0NPTlNUQU5UKFZNJiwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBq
c051bWJlcigyKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc1Byb3RvdHlwZV9NSVhJTl9SRUZMRUNURURfQ09OU1RBTlQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICBy
ZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19
CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJs
ZWQpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlBBUlRJQUxfTUlYSU5fQ09OU1RB
TlRfRlJPTV9QQVJUSUFMIiksIHN0cmxlbigiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BB
UlRJQUwiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVs
ZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KICNlbmRpZgot
Ci0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMg
SlNWYWx1ZSBjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX1BBUlRJQUxf
TUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMKFZNJiwgSlNPYmplY3QqKQotewotICAgIHJldHVy
biBqc051bWJlcig1KTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZV9QQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxP
YmplY3QpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRp
bmcyRW5hYmxlZDsKIH0KLSNlbmRpZgotCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8K
LQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNQcm90b3R5cGVUYWJsZUluZGV4WzY2XSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAyLCA2NCB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNCwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE2LCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyA1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMCwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA5LCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDExLCAtMSB9LAotICAgIHsgNiwgNjUgfSwKLSAgICB7IDEy
LCAtMSB9LAotfTsKIAorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJ0ZXN0QXR0ciIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc190ZXN0QXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7
ICJ0ZXN0QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzX3Rlc3RBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluUmVhZE9ubHlBdHRyaWJ1dGUiLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNr
PihjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluUmVhZE9ubHlB
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENh
bGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGlu
UmVhZE9ubHlBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpblJlYWRPbmx5QXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNf
bWl4aW5SZWFkT25seUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJp
bnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0
eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3Bl
cnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfbWl4
aW5BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxl
ZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21p
eGluQXR0cmlidXRlKSB9IH0sCisgICAgeyAibWl4aW5BdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX21peGlu
QXR0cmlidXRlKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24y
MykKLSAgICB7ICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFj
aywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxi
YWNrPihjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluQ3VzdG9t
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRD
YWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhp
bkN1c3RvbUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm1peGluQ3VzdG9tQXR0cmlidXRlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzX21peGluQ3VzdG9tQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc19taXhpbkN1c3RvbUF0dHJpYnV0ZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAs
IE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAibWl4aW5Ob2RlQXR0cmlidXRlIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVfbWl4aW5Ob2RlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xh
enlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZV9taXhpbk5vZGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpbk5vZGVB
dHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5Ob2RlQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbk5vZGVBdHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAg
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgInBhcnRpYWxNaXhpbkF0
dHJpYnV0ZUZyb21QYXJ0aWFsIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2ssIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZV9wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfcGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWwpIH0gfSwKKyAgICB7ICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX3Bh
cnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAs
IE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24x
MikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsg
Im1peGluT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVfbWl4aW5PcGVyYXRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6
eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlX21peGluT3BlcmF0aW9uKSB9IH0sCisgICAgeyAibWl4aW5PcGVyYXRpb24i
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbl9taXhpbk9wZXJhdGlv
biksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywg
eyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShD
b25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJtaXhpbkNvbXBsZXhP
cGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxM
YXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3Rv
dHlwZV9taXhpbkNvbXBsZXhPcGVyYXRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6
eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlX21peGluQ29tcGxleE9wZXJhdGlvbikgfSB9LAorICAgIHsgIm1peGluQ29t
cGxleE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9u
X21peGluQ29tcGxleE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKICNlbHNlCiAgICAg
eyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIChFTkFCTEUoQ29u
ZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
LSAgICB7ICJtaXhpbkN1c3RvbU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX21peGluQ3VzdG9tT3BlcmF0aW9uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpbkN1c3RvbU9wZXJhdGlvbikgfSB9
LAorICAgIHsgIm1peGluQ3VzdG9tT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25fbWl4aW5DdXN0b21PcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9
IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYK
ICNpZiAoRU5BQkxFKENvbmRpdGlvbjExKSAmJiBFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJM
RShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJtaXhpbkNvbmRp
dGlvbmFsT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVfbWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfbWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbikgfSB9LAor
ICAgIHsgIm1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbl9taXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKSwgKGludHB0cl90
KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluU2V0dGluZ3NDb25kaXRpb25hbE9w
ZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQ
cm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExh
enlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlX21peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9u
KSB9IH0sCisgICAgeyAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlv
bmFsT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5v
SW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikg
JiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1p
eGluUmVzdWx0RmllbGRPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9taXhpblJlc3VsdEZpZWxkT3BlcmF0aW9u
KSB9IH0sCisgICAgeyAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluUmVzdWx0RmllbGRPcGVyYXRpb24pLCAo
aW50cHRyX3QpICgwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwg
MCB9IH0sCiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0
aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAg
ICB7ICJwYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX3BhcnRpYWxNaXhpbk9wZXJhdGlvbkZy
b21QYXJ0aWFsKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRD
YWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9wYXJ0
aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCkgfSB9LAorICAgIHsgInBhcnRpYWxNaXhpbk9w
ZXJhdGlvbkZyb21QYXJ0aWFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVu
Y3Rpb25fcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpLCAoaW50cHRyX3QpICgwKSB9
IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJN
SVhJTl9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlBy
b3BlcnR5Q2FsbGJhY2ssIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5
UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZV9NSVhJTl9DT05TVEFOVCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlF
bmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVfTUlYSU5fQ09OU1RBTlQpIH0gfSwKKyAgICB7ICJNSVhJTl9DT05TVEFOVCIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5z
aWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2lj
LCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi0gICAgeyAiTUlYSU5fUkVGTEVDVEVEX0NPTlNUQU5UIiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlX01JWElOX1JFRkxFQ1RFRF9DT05TVEFO
VCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+
KGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVfTUlYSU5fUkVGTEVD
VEVEX0NPTlNUQU5UKSB9IH0sCisgICAgeyAiTUlYSU5fUkVGTEVDVEVEX0NPTlNUQU5UIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0lu
dHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRy
aW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLSAgICB7ICJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFS
VElBTCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2Fs
bGJhY2ssIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlD
YWxsYmFjaz4oY3JlYXRlSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZV9QQVJUSUFM
X01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNM
YXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVfUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwpIH0gfSwK
KyAgICB7ICJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IHsgKGxvbmcgbG9uZykoNSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7
IDAsIDAgfSB9LAogI2VuZGlmCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVUYWJsZSA9IHsgMTcsIDYzLCB0cnVlLCBKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzOjppbmZvKCksIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZVRhYmxl
SW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZSkgfTsKK2Nv
bnN0IENsYXNzSW5mbyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlOjpzX2luZm8g
PSB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3Rv
dHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlczo6aW5m
bygpLCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlz
KTsKKyAgICBib29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsKKyNpZiAo
RU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0
dGluZzJFbmFibGVkKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0
cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigibWl4aW5PcGVyYXRpb24iKSwgc3Ry
bGVuKCJtaXhpbk9wZXJhdGlvbiIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
OworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIH0KKyNlbmRpZgorI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRp
b24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0
aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJt
aXhpbkNvbXBsZXhPcGVyYXRpb24iKSwgc3RybGVuKCJtaXhpbkNvbXBsZXhPcGVyYXRpb24iKSk7
CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVy
dHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiAoRU5B
QkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMjMpCisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qo
KSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGlu
ZzJFbmFibGVkKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVl
OworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigibWl4aW5DdXN0b21PcGVyYXRpb24iKSwg
c3RybGVuKCJtaXhpbkN1c3RvbU9wZXJhdGlvbiIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3Bl
cnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25m
aWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNP
YmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIH0KKyNlbmRpZgorI2lmIChFTkFCTEUoQ29uZGl0aW9uMTEpICYmIEVOQUJM
RShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQorICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcy
RW5hYmxlZCkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsK
KyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIm1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24i
KSwgc3RybGVuKCJtaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uIikpOworICAgICAgICBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAg
ICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYgKEVOQUJMRShDb25kaXRpb24xMikg
JiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAgIGlmICgh
KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCAmJiBqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkKSkgeworICAgICAg
ICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIm1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiIpLCBzdHJsZW4o
Im1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiIpKTsKKyAgICAgICAgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25v
cmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAg
ICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYm
IEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJtaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uIiksIHN0cmxlbigibWl4aW5S
ZXN1bHRGaWVsZE9wZXJhdGlvbiIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
OworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIH0KKyNlbmRpZgorI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRp
b24yMikgJiYgRU5BQkxFKENvbmRpdGlvbjMzKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAg
IGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZCkg
eworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oInBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsIiks
IHN0cmxlbigicGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwiKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5n
c1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50
aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJtaXhp
blJlYWRPbmx5QXR0cmlidXRlIiksIHN0cmxlbigibWl4aW5SZWFkT25seUF0dHJpYnV0ZSIpKTsK
KyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0
eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2Jh
bE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAgIGlmICghanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmcyRW5hYmxlZCkgeworICAgICAgICBoYXNE
aXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIm1peGluQXR0cmlidXRlIiksIHN0cmxlbigibWl4aW5BdHRyaWJ1dGUiKSk7CisgICAg
ICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3Bl
cnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90
IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5z
ZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpLCBzdHJsZW4oIm1peGluQ3VzdG9tQXR0cmlidXRlIikp
OworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkKSB7CisgICAgICAgIGhh
c0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigibWl4aW5Ob2RlQXR0cmlidXRlIiksIHN0cmxlbigibWl4aW5Ob2RlQXR0cmlidXRl
IikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVBy
b3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYg
RU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkKSB7CisgICAgICAg
IGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigicGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwiKSwgc3RybGVuKCJw
YXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVD
b25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQorICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCku
dGVzdFNldHRpbmcyRW5hYmxlZCkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0
aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIk1JWElOX0NPTlNUQU5U
IiksIHN0cmxlbigiTUlYSU5fQ09OU1RBTlQiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RT
ZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJNSVhJTl9SRUZMRUNURURfQ09O
U1RBTlQiKSwgc3RybGVuKCJNSVhJTl9SRUZMRUNURURfQ09OU1RBTlQiKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5n
c1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50
aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJQQVJU
SUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIpLCBzdHJsZW4oIlBBUlRJQUxfTUlYSU5f
Q09OU1RBTlRfRlJPTV9QQVJUSUFMIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgfQorI2VuZGlmCisgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYg
c3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQorICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9i
amVjdCh2bSk7CiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcAppbmRleCBi
MWY2Yjk5ZjE4MmFlMGE0ODJhNjg3ZTA1OGZiY2FiN2E2ZWJlODdmLi5lMmY0MGMxNjE0NWQ0N2Y4
NjdlNTJlYTlmOGRjZGEyZjYxNzFmNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGUuY3BwCkBAIC0xMTIsMTQgKzExMiwzMiBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlLCBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT47CiAKLXRlbXBs
YXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0
cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworLyogSGFzaCB0
YWJsZSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVRhYmxlSW5kZXhbOF0gPSB7CisgICAgeyAtMSwgLTEgfSwKKyAg
ICB7IC0xLCAtMSB9LAorICAgIHsgMSwgLTEgfSwKKyAgICB7IDAsIC0xIH0sCisgICAgeyAtMSwg
LTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwK
K307CisKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVUYWJsZVZhbHVlc1tdID0KK3sKKyAgICB7ICJydW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKSB9IH0s
CisgICAgeyAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFi
bGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlVGFibGUgPSB7IDIsIDcsIHRydWUs
IEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgSlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVRhYmxlVmFsdWVzLCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlVGFibGVJ
bmRleCB9OwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xMzUsMTA2ICsxNTMsODQgQEAgdGVtcGxhdGU8PiB2b2lk
IEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVBy
b3BlcnRpZXMKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUg
Ki8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVQcm90b3R5cGVUYWJsZUluZGV4WzE5XSA9IHsKLSAgICB7IDYsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNCwgMTggfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMSwgMTcgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIDE2IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgMywgLTEgfSwK
LSAgICB7IDUsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQ
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJM
RShDT05ESVRJT04pCi0gICAgeyAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVf
Y29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVfY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgImNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfY29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSkgfSB9LAogI2Vsc2UKLSAgICB7ICJj
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAg
eyAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ09ORElUSU9OMikKICNp
ZiBFTkFCTEUoQ09ORElUSU9OKQotICAgIHsgImNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25hbEFuZENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbEFu
ZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUpIH0gfSwKICNlbHNlCi0gICAgeyAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlX2NvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwK
KyAgICB7ICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZV9jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
ZW5kaWYKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRp
ZgotICAgIHsgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpIH0gfSwKKyAg
ICB7ICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUpIH0gfSwKICAgICB7ICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVf
cnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVByb21pc2UpIH0gfSwKLSAgICB7ICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKSB9IH0sCisgICAgeyAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSB9IH0sCiAgICAgeyAic2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVQcm9taXNlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGVUYWJsZSA9IHsg
NywgMTUsIHRydWUsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgSlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlKSB9
OwogCiB2b2lkIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVp
ZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZv
KCksIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwotICAgIC8vIFNoYWRvdyByZWFkLXdyaXRlIHZhcmlhbnQgZnJvbSB0aGUgc3RhdGljIGhh
c2ggdGFibGUuCi0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZt
LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIHN0YXRpY19jYXN0PEpTVk1D
bGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHVibGljTmFtZSgpLCBpbmZvKCktPnN0YXRpY1Byb3BI
YXNoVGFibGUtPmVudHJ5KHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHVibGljTmFtZSgpKS0+bWFrZVJlYWRPbmx5Q29weSgpLCAqdGhpcyk7Ci0gICAgLy8gU2hhZG93
IHJlYWQtd3JpdGUgdmFyaWFudCBmcm9tIHRoZSBzdGF0aWMgaGFzaCB0YWJsZS4KLSAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFi
bGVkKCkpCi0gICAgICAgIHJlaWZ5U3RhdGljUHJvcGVydHkodm0sIEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGU6OmluZm8oKSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGll
bnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVB1YmxpY05hbWUoKSwgaW5mbygpLT5zdGF0aWNQcm9wSGFzaFRhYmxl
LT5lbnRyeShzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlUHVibGljTmFtZSgpKS0+bWFrZVJlYWRPbmx5Q29weSgpLCAqdGhpcyk7Ci0gICAgLy8gU2hh
ZG93IHJlYWQtd3JpdGUgdmFyaWFudCBmcm9tIHRoZSBzdGF0aWMgaGFzaCB0YWJsZS4KKyAgICBi
b29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsKKyAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSIpLCBzdHJsZW4oInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIikp
OworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorICAgIGlmICghUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkg
eworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlUHJvbWlzZSIpLCBzdHJsZW4oInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlUHJvbWlzZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyAg
ICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzVmFsdWVzKCku
dGVzdEZlYXR1cmVFbmFibGVkKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRp
ZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigic2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiksIHN0cmxlbigic2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2Nv
cGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7
CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgfQorICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3NW
YWx1ZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJzZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIiksIHN0cmxlbigic2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpKTsKKyAgICAgICAgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
OjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsK
KyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyAgICAvLyBBZGRpbmcgYmFjayBhdHRyaWJ1dGUs
IGJ1dCBhcyByZWFkb25seSwgYWZ0ZXIgcmVtb3ZpbmcgdGhlIHJlYWQtd3JpdGUgdmFyaWFudCBh
Ym92ZS4gCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlUHVibGljTmFtZSgpLCBpbmZv
KCktPnN0YXRpY1Byb3BIYXNoVGFibGUtPmVudHJ5KHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRh
Kj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlUHVibGljTmFtZSgpKS0+bWFrZVJlYWRP
bmx5Q29weSgpLCAqdGhpcyk7Ci0gICAgLy8gU2hhZG93IHJlYWQtd3JpdGUgdmFyaWFudCBmcm9t
IHRoZSBzdGF0aWMgaGFzaCB0YWJsZS4KKyAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Io
dm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5O
YW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHVibGljTmFtZSgp
LCBKU0M6OkRPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCBu
dWxscHRyLCBKU0M6OkRPTUF0dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlOjppbmZvKCksIG51bGxwdHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSkpOworICAgIC8vIEFkZGlu
ZyBiYWNrIGF0dHJpYnV0ZSwgYnV0IGFzIHJlYWRvbmx5LCBhZnRlciByZW1vdmluZyB0aGUgcmVh
ZC13cml0ZSB2YXJpYW50IGFib3ZlLiAKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHJlaWZ5U3Rh
dGljUHJvcGVydHkodm0sIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgc3Rh
dGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCku
cnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlUHVibGljTmFtZSgp
LCBpbmZvKCktPnN0YXRpY1Byb3BIYXNoVGFibGUtPmVudHJ5KHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSktPm1ha2VSZWFkT25seUNv
cHkoKSwgKnRoaXMpOwotICAgIC8vIFNoYWRvdyByZWFkLXdyaXRlIHZhcmlhbnQgZnJvbSB0aGUg
c3RhdGljIGhhc2ggdGFibGUuCi0gICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCkKLSAgICAgICAgcmVpZnlT
dGF0aWNQcm9wZXJ0eSh2bSwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6aW5mbygpLCBz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMo
KS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQdWJsaWNOYW1lKCksIGlu
Zm8oKS0+c3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkoc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERh
dGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHVibGljTmFtZSgpKS0+bWFrZVJlYWRPbmx5Q29weSgpLCAqdGhp
cyk7Ci0gICAgLy8gU2hhZG93IHJlYWQtd3JpdGUgdmFyaWFudCBmcm9tIHRoZSBzdGF0aWMgaGFz
aCB0YWJsZS4KKyAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9t
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlLCBudWxscHRyKSwgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CisgICAgLy8gQWRkaW5nIGJhY2sgYXR0cmlidXRl
LCBidXQgYXMgcmVhZG9ubHksIGFmdGVyIHJlbW92aW5nIHRoZSByZWFkLXdyaXRlIHZhcmlhbnQg
YWJvdmUuIAogICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGlu
Z3NWYWx1ZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQpCi0gICAgICAgIHJlaWZ5U3RhdGljUHJvcGVy
dHkodm0sIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQdWJsaWNOYW1lKCksIGlu
Zm8oKS0+c3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkoc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERh
dGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQdWJsaWNOYW1lKCkpLT5tYWtlUmVhZE9ubHlD
b3B5KCksICp0aGlzKTsKLSAgICAvLyBTaGFkb3cgcmVhZC13cml0ZSB2YXJpYW50IGZyb20gdGhl
IHN0YXRpYyBoYXNoIHRhYmxlLgorICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVz
KCkuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHVibGljTmFtZSgpLCBK
U0M6OkRPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgbnVs
bHB0ciwgSlNDOjpET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZTo6aW5mbygpLCBudWxscHRyIH0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSkpKTsKKyAgICAvLyBBZGRpbmcg
YmFjayBhdHRyaWJ1dGUsIGJ1dCBhcyByZWFkb25seSwgYWZ0ZXIgcmVtb3ZpbmcgdGhlIHJlYWQt
d3JpdGUgdmFyaWFudCBhYm92ZS4gCiAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCkKLSAgICAgICAgcmVp
ZnlTdGF0aWNQcm9wZXJ0eSh2bSwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6aW5mbygp
LCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFt
ZXMoKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGVQdWJsaWNOYW1lKCksIGluZm8oKS0+c3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkoc3Rh
dGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCku
c2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
UHVibGljTmFtZSgpKS0+bWFrZVJlYWRPbmx5Q29weSgpLCAqdGhpcyk7Ci0gICAgLy8gU2hhZG93
IHJlYWQtd3JpdGUgdmFyaWFudCBmcm9tIHRoZSBzdGF0aWMgaGFzaCB0YWJsZS4KLSAgICBpZiAo
IWRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzVmFsdWVzKCkudGVzdEZl
YXR1cmVFbmFibGVkKQotICAgICAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVByb21pc2VQdWJsaWNOYW1lKCksIGluZm8oKS0+c3RhdGljUHJvcEhhc2hU
YWJsZS0+ZW50cnkoc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+
YnVpbHRpbk5hbWVzKCkuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZVB1YmxpY05hbWUoKSktPm1ha2VSZWFkT25seUNvcHkoKSwgKnRoaXMpOworICAgICAgICBw
dXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yKSkpOworICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVj
dHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Qo
dm0pOwogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi0v
KiBIYXNoIHRhYmxlIGZvciBJbnN0YW5jZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUluc3RhbmNlVGFibGVJbmRl
eFs0XSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAtMSB9
LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVJbnN0YW5jZVRhYmxlVmFsdWVzW10gPQotewotICAg
IHsgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUs
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKSB9
IH0sCi0gICAgeyAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGUpIH0gfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUluc3RhbmNlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUlu
c3RhbmNlVGFibGVWYWx1ZXMsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVJbnN0YW5jZVRh
YmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
OjpzX2luZm8gPSB7ICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlSW5zdGFuY2VUYWJsZSwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKSB9OworY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OnNfaW5mbyA9IHsgIlRlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlKSB9OwogCiBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcjxUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT4o
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpCkBAIC0yNDgsOCArMjQ0LDgg
QEAgdm9pZCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0pCiAKICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0
LCBUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBt
YXJrZWQgYXMgW0FjdGl2ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xh
c3Mgc3ViY2xhc3NlcyBBY3RpdmVET01PYmplY3QuIik7CiAKLSAgICBwdXREaXJlY3RDdXN0b21B
Y2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+
YnVpbHRpbk5hbWVzKCkucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZVByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvcikpOwotICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5zZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVQcml2
YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZVByaXZhdGUsIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSk7
CisgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9t
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIG51
bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgIHB1dERp
cmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNs
aWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIG51bGxwdHIpLCBh
dHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOwogfQogCiBKU09iamVjdCogSlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKaW5kZXggZWRmOTRlMmZl
NGViYjAyOWVkYTcyMDI5MGIzNDVkOTVmY2RmODMzZS4uYTliYWFkZDkyYWQ3MTQzZjM0ZDQwZDRl
YWE2NTBlYmIyNDE2NzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTUwMCwxNCArNTAwLDExIEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdERPTUpJVFByb3RvdHlwZSwg
SlNUZXN0RE9NSklUUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0RE9NSklURE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RET01KSVQ+
OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdERPTUpJVERPTUNvbnN0cnVjdG9y
OjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0RE9NSklURE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RE
T01KSVQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTVGVzdERPTUpJVERPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUg
SlNUZXN0RE9NSklURE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTUyMiwxOTcg
KzUxOSw1NCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RE9NSklURE9NQ29uc3RydWN0b3I6Omlu
aXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwgSlNET01HbAogICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8q
IEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUZXN0RE9NSklUUHJvdG90eXBlVGFibGVJbmRleFsxMzhdID0gewotICAg
IHsgMTUsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMiwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyNSwgLTEgfSwK
LSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE3LCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzNSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMywgLTEgfSwKLSAgICB7IDM0
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE0LCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMSwgMTM3IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgMTYsIDEyOSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDI3LCAxMzMg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMzYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMTksIC0xIH0sCi0gICAgeyAyMSwgMTMxIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMjIsIDEzNSB9LAotICAgIHsgMzIsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCAxMzQgfSwKLSAgICB7IDEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyA3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAy
OCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgOCwgMTM2IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMjksIC0xIH0sCi0gICAgeyAyMCwgMTMwIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4LCAtMSB9LAotICAgIHsgNiwg
MTI4IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDI2LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA5LCAt
MSB9LAotICAgIHsgMTAsIC0xIH0sCi0gICAgeyAyMywgLTEgfSwKLSAgICB7IDI0LCAtMSB9LAot
ICAgIHsgMzAsIDEzMiB9LAotICAgIHsgMzEsIC0xIH0sCi0gICAgeyAzMywgLTEgfSwKLSAgICB7
IDM3LCAtMSB9LAotICAgIHsgMzgsIC0xIH0sCi0gICAgeyAzOSwgLTEgfSwKLSAgICB7IDQwLCAt
MSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RET01KSVRQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsK
ICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RE9NSklUQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCi0gICAgeyAiYW55QXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZv
clRlc3RET01KSVRBbnlBdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgImJv
b2xlYW5BdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0
IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJ
VEJvb2xlYW5BdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgImJ5dGVBdHRy
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJp
YnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9N
SklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEJ5dGVBdHRy
KSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgIm9jdGV0QXR0ciIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVy
U2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRPY3RldEF0dHIpLCAoaW50cHRy
X3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAic2hvcnRBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigm
RE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFNob3J0QXR0ciksIChpbnRwdHJfdCkgKG51bGxw
dHIpIH0gfSwKLSAgICB7ICJ1bnNpZ25lZFNob3J0QXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0ciksIChpbnRwdHJfdCkg
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJsb25nQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJ
VEF0dHJpYnV0ZUZvclRlc3RET01KSVRMb25nQXR0ciksIChpbnRwdHJfdCkgKG51bGxwdHIpIH0g
fSwKLSAgICB7ICJ1bnNpZ25lZExvbmdBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0
cmlidXRlRm9yVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIpLCAoaW50cHRyX3QpIChudWxscHRy
KSB9IH0sCi0gICAgeyAibG9uZ0xvbmdBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0
cmlidXRlRm9yVGVzdERPTUpJVExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkgKG51bGxwdHIpIH0g
fSwKLSAgICB7ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJ
VEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkg
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJmbG9hdEF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01K
SVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklURmxvYXRBdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikg
fSB9LAotICAgIHsgInVucmVzdHJpY3RlZEZsb2F0QXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHIpLCAoaW50cHRy
X3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAiZG91YmxlQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4o
JkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVREb3VibGVBdHRyKSwgKGludHB0cl90KSAobnVs
bHB0cikgfSB9LAotICAgIHsgInVucmVzdHJpY3RlZERvdWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRl
cio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0ciks
IChpbnRwdHJfdCkgKG51bGxwdHIpIH0gfSwKLSAgICB7ICJkb21TdHJpbmdBdHRyIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0
ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVERvbVN0cmluZ0F0dHIpLCAo
aW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAiYnl0ZVN0cmluZ0F0dHIiLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRl
clNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIpLCAo
aW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAidXN2U3RyaW5nQXR0ciIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVy
U2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVc3ZTdHJpbmdBdHRyKSwgKGlu
dHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgIm5vZGVBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIq
PigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVE5vZGVBdHRyKSwgKGludHB0cl90KSAobnVs
bHB0cikgfSB9LAotICAgIHsgImJvb2xlYW5OdWxsYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+
KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0ciksIChpbnRw
dHJfdCkgKG51bGxwdHIpIH0gfSwKLSAgICB7ICJieXRlTnVsbGFibGVBdHRyIiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJT
ZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIpLCAo
aW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAib2N0ZXROdWxsYWJsZUF0dHIiLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6Okdl
dHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0
dHIpLCAoaW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAic2hvcnROdWxsYWJsZUF0dHIi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmli
dXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01K
SVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUU2hvcnROdWxs
YWJsZUF0dHIpLCAoaW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAidW5zaWduZWRTaG9y
dE51bGxhYmxlQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxj
b25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RE
T01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9
LAotICAgIHsgImxvbmdOdWxsYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRy
aWJ1dGVGb3JUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKG51bGxwdHIp
IH0gfSwKLSAgICB7ICJ1bnNpZ25lZExvbmdOdWxsYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+
KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKSwg
KGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgImxvbmdMb25nTnVsbGFibGVBdHRyIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0
ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklU
OjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVExvbmdMb25nTnVs
bGFibGVBdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAgIHsgInVuc2lnbmVkTG9u
Z0xvbmdOdWxsYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JU
ZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKG51bGxw
dHIpIH0gfSwKLSAgICB7ICJmbG9hdE51bGxhYmxlQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ciksIChpbnRwdHJfdCkg
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJ1bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ciIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUs
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6
R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdE51bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKG51bGxwdHIpIH0gfSwKLSAgICB7ICJkb3Vi
bGVOdWxsYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NSklUQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0
RE9NSklURG91YmxlTnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAobnVsbHB0cikgfSB9LAotICAg
IHsgInVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIp
LCAoaW50cHRyX3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAiZG9tU3RyaW5nTnVsbGFibGVBdHRy
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJp
YnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9N
SklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVERvbVN0cmlu
Z051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKG51bGxwdHIpIH0gfSwKLSAgICB7ICJieXRlU3Ry
aW5nTnVsbGFibGVBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVz
dERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpIChudWxscHRyKSB9IH0s
Ci0gICAgeyAidXN2U3RyaW5nTnVsbGFibGVBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklU
QXR0cmlidXRlRm9yVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkg
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJub2RlTnVsbGFibGVBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIq
PigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIpLCAoaW50cHRy
X3QpIChudWxscHRyKSB9IH0sCi0gICAgeyAiZ2V0QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRGdW5jdGlv
biwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUqPigmRE9NSklUU2lnbmF0
dXJlRm9yVGVzdERPTUpJVEdldEF0dHJpYnV0ZSkgfSB9LAotICAgIHsgIml0ZW0iLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJ
VEZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW0pLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUqPigmRE9NSklUU2lnbmF0
dXJlRm9yVGVzdERPTUpJVEl0ZW0pIH0gfSwKLSAgICB7ICJoYXNBdHRyaWJ1dGUiLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJ
VEZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hhc0F0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSo+KCZET01K
SVRTaWduYXR1cmVGb3JUZXN0RE9NSklUSGFzQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZ2V0RWxl
bWVudEJ5SWQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUpJVEZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
X2dldEVsZW1lbnRCeUlkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJ
VDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50QnlJ
ZCkgfSB9LAotICAgIHsgImdldEVsZW1lbnRzQnlOYW1lIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRFbGVtZW50c0J5TmFtZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSo+KCZET01KSVRTaWduYXR1
cmVGb3JUZXN0RE9NSklUR2V0RWxlbWVudHNCeU5hbWUpIH0gfSwKKyAgICB7ICJhbnlBdHRyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVG
b3JUZXN0RE9NSklUQW55QXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJib29sZWFu
QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0
cmlidXRlRm9yVGVzdERPTUpJVEJvb2xlYW5BdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAg
IHsgImJ5dGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZE
T01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQnl0ZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAib2N0ZXRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRl
cio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUT2N0ZXRBdHRyKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgInNob3J0QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0
ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFNob3J0QXR0ciksIChpbnRw
dHJfdCkgKDApIH0gfSwKKyAgICB7ICJ1bnNpZ25lZFNob3J0QXR0ciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklU
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpT
Qzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVu
c2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImxvbmdBdHRyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVG
b3JUZXN0RE9NSklUTG9uZ0F0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidW5zaWdu
ZWRMb25nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9N
SklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIpLCAoaW50cHRyX3QpICgw
KSB9IH0sCisgICAgeyAibG9uZ0xvbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6Okdl
dHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0
RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAi
ZmxvYXRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01K
SVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklURmxvYXRBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAor
ICAgIHsgInVucmVzdHJpY3RlZEZsb2F0QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpH
ZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVucmVzdHJpY3RlZEZs
b2F0QXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJkb3VibGVBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0
RE9NSklURG91YmxlQXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ1bnJlc3RyaWN0
ZWREb3VibGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZE
T01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0ciksIChpbnRw
dHJfdCkgKDApIH0gfSwKKyAgICB7ICJkb21TdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpE
T01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklURG9tU3Ry
aW5nQXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJieXRlU3RyaW5nQXR0ciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9y
VGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInVz
dlN0cmluZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVc3ZTdHJpbmdBdHRyKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgIm5vZGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNl
dHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUTm9kZUF0dHIpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCisgICAgeyAiYm9vbGVhbk51bGxhYmxlQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6
RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEJvb2xl
YW5OdWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiYnl0ZU51bGxhYmxl
QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0
cmlidXRlRm9yVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAib2N0ZXROdWxsYWJsZUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0
dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRPY3RldE51bGxhYmxlQXR0
ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJzaG9ydE51bGxhYmxlQXR0ciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVz
dERPTUpJVFNob3J0TnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInVu
c2lnbmVkU2hvcnROdWxsYWJsZUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVy
U2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFi
bGVBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImxvbmdOdWxsYWJsZUF0dHIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZv
clRlc3RET01KSVRMb25nTnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsg
InVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0
ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxh
YmxlQXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJsb25nTG9uZ051bGxhYmxlQXR0
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmli
dXRlRm9yVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6
OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnNp
Z25lZExvbmdMb25nTnVsbGFibGVBdHRyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZs
b2F0TnVsbGFibGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+
KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIpLCAoaW50cHRy
X3QpICgwKSB9IH0sCisgICAgeyAidW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRl
c3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKDApIH0g
fSwKKyAgICB7ICJkb3VibGVOdWxsYWJsZUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6
R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVREb3VibGVOdWxsYWJs
ZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidW5yZXN0cmljdGVkRG91YmxlTnVs
bGFibGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01K
SVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImRvbVN0cmluZ051bGxhYmxlQXR0ciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVz
dERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7
ICJieXRlU3RyaW5nTnVsbGFibGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRl
clNldHRlcio+KCZET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxl
QXR0ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ1c3ZTdHJpbmdOdWxsYWJsZUF0dHIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0
ZUZvclRlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAibm9kZU51bGxhYmxlQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0
ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIp
LCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZ2V0QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NSklURnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
X2dldEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6
OlNpZ25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0QXR0cmlidXRlKSB9
IH0sCisgICAgeyAiaXRlbSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9pdGVtKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25hdHVyZUZvclRl
c3RET01KSVRJdGVtKSB9IH0sCisgICAgeyAiaGFzQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NSklURnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hh
c0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OlNp
Z25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUSGFzQXR0cmlidXRlKSB9IH0s
CisgICAgeyAiZ2V0RWxlbWVudEJ5SWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudEJ5SWQpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUqPigmRE9N
SklUU2lnbmF0dXJlRm9yVGVzdERPTUpJVEdldEVsZW1lbnRCeUlkKSB9IH0sCisgICAgeyAiZ2V0
RWxlbWVudHNCeU5hbWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudHNCeU5hbWUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUqPigmRE9NSklUU2ln
bmF0dXJlRm9yVGVzdERPTUpJVEdldEVsZW1lbnRzQnlOYW1lKSB9IH0sCiB9OwogCi1zdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdERPTUpJVFByb3RvdHlwZVRhYmxlID0geyA0MSwgMTI3LCB0
cnVlLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNUZXN0RE9NSklUUHJvdG90eXBlVGFibGVWYWx1
ZXMsIEpTVGVzdERPTUpJVFByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RET01KSVRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RET01KSVQiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0RE9NSklUUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0RE9NSklUUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERP
TUpJVFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdERPTUpJVCIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RE9NSklUUHJvdG90eXBl
KSB9OwogCiB2b2lkIEpTVGVzdERPTUpJVFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdERlZmF1bHRUb0pTT04uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCmluZGV4IDYxODdmOWFlNTFjOWQ1MWIz
OWI2YWVkODA2NGU0NGZkMDg4NmZhZjUuLmZjZTc1N2U2Njc4YmQyNDJmNDUyNjBiYWUwNjc5NGRh
ZDFkNjJlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAKQEAgLTEzOCwxNCArMTM4
LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
Jik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
fTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdERlZmF1bHRUb0pT
T05Qcm90b3R5cGUsIEpTVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGU6OkJhc2UpOwogCiB1c2lu
ZyBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90
Q29uc3RydWN0YWJsZTxKU1Rlc3REZWZhdWx0VG9KU09OPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1
bnNpZ25lZCBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9K
U09OIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
QEAgLTE2MSwxMzQgKzE1OCw1OCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RGVmYXVsdFRvSlNP
TkRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sCiAgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKIH0KIAotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlw
ZV9sb25nQXR0cmlidXRlKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRy
aWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RGVmYXVsdFRvSlNPTl9sb25nQXR0
cmlidXRlLCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0RGVmYXVsdFRv
SlNPTjo6aW5mbygpLCBudWxscHRyIH0pOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rl
c3REZWZhdWx0VG9KU09OUHJvdG90eXBlX2xvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1
cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0UnVudGltZUVu
YWJsZWRFbmFibGVkKCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdERlZmF1bHRU
b0pTT05Qcm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoVk0mIHZtLCBKU09iamVj
dCopCi17Ci0gICAgcmV0dXJuIERPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBq
c1Rlc3REZWZhdWx0VG9KU09OX2VuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlLCBudWxscHRyLCBE
T01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0RGVmYXVsdFRvSlNPTjo6aW5mbygpLCBudWxs
cHRyIH0pOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3REZWZhdWx0VG9KU09OUHJv
dG90eXBlX2VuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQ7Ci19Ci0KLS8qIEhh
c2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RI
YXNoSW5kZXggSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZVRhYmxlSW5kZXhbNjZdID0gewot
ICAgIHsgMTYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE3LCAtMSB9LAotICAgIHsg
NiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE0
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA0LCAtMSB9LAotICAgIHsgMiwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4LCAtMSB9LAotICAgIHsgNSwg
LTEgfSwKLSAgICB7IDMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTMsIDY1
IH0sCi0gICAgeyAxMiwgNjQgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAx
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEwLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDksIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDE1LCAtMSB9LAotICAgIHsgMTgsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90
b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlZmF1bHRUb0pT
T05Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImxvbmdBdHRy
aWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVy
dHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9w
ZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlX2xvbmdBdHRy
aWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxi
YWNrPihpc0VuYWJsZWRKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlX2xvbmdBdHRyaWJ1dGUp
IH0gfSwKLSAgICB7ICJlbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpT
VGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0Vu
YWJsZWRKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlX2VuYWJsZWRCeVNldHRpbmdzQXR0cmli
dXRlKSB9IH0sCisgICAgeyAibG9uZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2xvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAi
ZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RGVmYXVsdFRvSlNPTl9lbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwK
ICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLSAgICB7ICJlbmFibGVkQnlDb25kaXRpb25h
bEF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9lbmFibGVkQnlDb25kaXRp
b25hbEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJlbmFibGVkQnlDb25kaXRpb25hbEF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9K
U09OX2VuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UKICAgICB7IDAs
IDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAiZXZlbnRIYW5kbGVy
QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTl9ldmVudEhhbmRsZXJBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2V2ZW50SGFu
ZGxlckF0dHJpYnV0ZSkgfSB9LAotICAgIHsgImZpcnN0U3RyaW5nQXR0cmlidXRlIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fZmlyc3RTdHJpbmdBdHRyaWJ1dGUpIH0gfSwK
LSAgICB7ICJzZWNvbmRMb25nQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RGVmYXVsdFRvSlNPTl9zZWNvbmRMb25nQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTl9zZWNvbmRMb25nQXR0cmlidXRlKSB9IH0sCi0gICAgeyAidGhpcmRVbkpTT05hYmxl
QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTl90aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3RoaXJk
VW5KU09OYWJsZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgImZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRU
b0pTT05fZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTl9mb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJmaWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0RGVmYXVsdFRvSlNPTl9maWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTl9maWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKSB9IH0sCi0gICAgeyAic2l4dGhUeXBl
ZGVmQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVs
dFRvSlNPTl9zaXh0aFR5cGVkZWZBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3NpeHRo
VHlwZWRlZkF0dHJpYnV0ZSkgfSB9LAotICAgIHsgInNldmVudGhEaXJlY3RseVRvSlNPTmFibGVB
dHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9K
U09OX3NldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9K
U09OX3NldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJlaWdo
dGhJbmRpcmVjdGx5QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0RGVmYXVsdFRvSlNPTl9laWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTl9laWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKSB9IH0sCi0gICAgeyAibmludGhPcHRp
b25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fbmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fbmludGhPcHRpb25hbERpcmVjdGx5VG9K
U09OYWJsZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgInRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX3RlbnRo
RnJvemVuQXJyYXlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3RlbnRoRnJvemVuQXJy
YXlBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJlbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9lbGV2ZW50aFNl
cXVlbmNlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9lbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlKSB9IH0sCi0gICAgeyAidHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl90d2VsZnRo
SW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3R3ZWxmdGhJ
bnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgInRoaXJ0ZWVudGhSZWNvcmRB
dHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9K
U09OX3RoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3RoaXJ0
ZWVudGhSZWNvcmRBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJldmVudEhhbmRsZXJBdHRyaWJ1dGUi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdERlZmF1bHRUb0pTT05fZXZlbnRIYW5kbGVyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTl9ldmVudEhhbmRsZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJmaXJzdFN0cmluZ0F0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1
bHRUb0pTT05fZmlyc3RTdHJpbmdBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJzZWNvbmRMb25nQXR0
cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX3NlY29uZExvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZh
dWx0VG9KU09OX3NlY29uZExvbmdBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJ0aGlyZFVuSlNPTmFi
bGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fdGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTl90aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7
ICJmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fZm91
cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9mb3Vy
dGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJmaWZ0aExvbmdDbGFt
cGVkQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2ZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OX2ZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpIH0gfSwKKyAg
ICB7ICJzaXh0aFR5cGVkZWZBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fc2l4dGhUeXBlZGVm
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zaXh0aFR5cGVkZWZBdHRyaWJ1dGUpIH0g
fSwKKyAgICB7ICJzZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0
VG9KU09OX3NldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OX3NldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJl
aWdodGhJbmRpcmVjdGx5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0
bHlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1
dGUpIH0gfSwKKyAgICB7ICJuaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3REZWZhdWx0VG9KU09OX25pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX25pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVB
dHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJ0ZW50aEZyb3plbkFycmF5QXR0cmlidXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZh
dWx0VG9KU09OX3RlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09O
X3RlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJlbGV2ZW50aFNlcXVlbmNl
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUpIH0gfSwKKyAgICB7
ICJ0d2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fdHdl
bGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90d2Vs
ZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJ0aGlydGVlbnRoUmVj
b3JkQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX3RoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OX3RoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUpIH0gfSwKICAg
ICB7ICJ0b0pTT04iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvbl90b0pTT04p
LCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVz
dERlZmF1bHRUb0pTT05Qcm90b3R5cGVUYWJsZSA9IHsgMTksIDYzLCB0cnVlLCBKU1Rlc3REZWZh
dWx0VG9KU09OOjppbmZvKCksIEpTVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVUYWJsZVZhbHVl
cywgSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNz
SW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVs
dFRvSlNPTiIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlVGFi
bGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTlByb3Rv
dHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlOjpz
X2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZSkg
fTsKIAogdm9pZCBKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgSlNUZXN0RGVmYXVsdFRvSlNPTjo6aW5mbygpLCBKU1Rlc3REZWZhdWx0
VG9KU09OUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKKyAgICBib29sIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSBmYWxzZTsKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdFJ1bnRpbWVFbmFibGVkRW5hYmxlZCgpKSB7CisgICAg
ICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigibG9uZ0F0dHJpYnV0ZSIpLCBzdHJsZW4oImxvbmdBdHRyaWJ1dGUiKSk7
CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVy
dHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisgICAgaWYgKCFqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQpIHsKKyAgICAgICAgaGFz
RGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJlbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRCeVNl
dHRpbmdzQXR0cmlidXRlIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUg
c2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Cisg
ICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAg
fQorICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5p
c0RpY3Rpb25hcnkoKSkKKyAgICAgICAgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAg
IEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCmluZGV4
IDg3NTYxNGQ1OGZiZjk1MjVmZjVjMWQyYTk4NTYwMzdhMWI5YTJjNWUuLjFhYWQxYTE5YjE2NDBi
N2FlYmJjODJjOGJlYTY3NTBhNWZjMzFmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCkBAIC04OSwxNCArODksMTEgQEAg
cHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RB
VElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkUHJvdG90eXBlLCBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD47CiAKLXRlbXBsYXRlPD4gY29u
c3QgdW5zaWduZWQgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3Ry
dWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3RydWN0b3IpIH07CiAK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRE
T01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTEyLDY2ICsxMDksNDAgQEAgdGVt
cGxhdGU8PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZERPTUNvbnN0
cnVjdG9yOjppbml0aWFsaXplUHIKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBj
cmVhdGVKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVfZmlsdGVy
ZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0
dXJuIERPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUsIG51
bGxwdHIsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVy
ZWRCeUV4cG9zZWQ6OmluZm8oKSwgbnVsbHB0ciB9KTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFi
bGVkSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlX2ZpbHRlcmVk
QnlFeHBvc2VkV2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17
Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNEb2N1bWVudCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRy
aWJ1dGUoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIERPTUF0dHJpYnV0ZUdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRf
ZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUsIG51bGxwdHIsIERPTUF0dHJpYnV0ZUFu
bm90YXRpb24geyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ6OmluZm8oKSwg
bnVsbHB0ciB9KTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlX2ZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGds
b2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJHbG9iYWxTY29wZSgp
OwotfQotCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZFByb3RvdHlwZVRhYmxlSW5kZXhbMTZdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
NCwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAotICAgIHsgMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
Ci0gICAgeyAibm9ybWFsQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRfbm9ybWFsQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgImZpbHRl
cmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2ssIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlX2ZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxs
YmFjaz4oaXNFbmFibGVkSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90
eXBlX2ZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZmlsdGVy
ZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRy
aWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxi
YWNrPihpc0VuYWJsZWRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5
cGVfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJub3JtYWxB
dHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkX25vcm1hbEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJmaWx0
ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9z
ZWRXaW5kb3dBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJB
dHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkX2ZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSB9LAogICAgIHsgInRvSlNPTiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
UHJvdG90eXBlRnVuY3Rpb25fdG9KU09OKSwgKGludHB0cl90KSAoMCkgfSB9LAogfTsKIAotc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQ
cm90b3R5cGVUYWJsZSA9IHsgNSwgMTUsIHRydWUsIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZDo6aW5mbygpLCBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQ
cm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGUpIH07Citj
b25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjppbmZv
KCksIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZVRhYmxlVmFs
dWVzLCAqdGhpcyk7CisgICAgYm9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFs
c2U7CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIGhhc0Rp
c2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUiKSwgc3RybGVuKCJmaWx0ZXJl
ZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIH0KKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckdsb2JhbFNjb3BlKCkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJmaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSIp
LCBzdHJsZW4oImZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlIikpOworICAgICAgICBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90
OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCks
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRpbWVQ
cm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgZmxhdHRl
bkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJB
TlNJVElPTigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAppbmRleCA0MDMzNmY3MTIzOTY1M2YwNjRiMDIyOGUz
MDZjZDEyMDA5N2RmZTIyLi5kZjE4YmY2N2YxZGIwOTFiNTUwNWVlOGYxN2QzYTc2Mzg5ZmU0MDU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZS5jcHAKQEAgLTc2LDE0ICs3NiwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpT
Qzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFD
RV9TSEFSQUJMRShKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZVByb3RvdHlw
ZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGU6OkJhc2Up
OwogCiB1c2luZyBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2U+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpT
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0b3I6OlN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC05OCwyMSArOTUsMTQgQEAgdGVtcGxhdGU8
PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0
b3I6OmluaXRpYWxpemUKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90
b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9y
IHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RGVmYXVs
dFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUg
SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGVUYWJsZSA9IHsg
MSwgMSwgdHJ1ZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6OmluZm8o
KSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGVUYWJsZVZh
bHVlcywgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGVUYWJs
ZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZVByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBlKSB9OworY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcApp
bmRleCA4NDZiMTQ3OWY0NGQ2MjNlM2JlODA2NDA5M2JjMmI2NTM0ODJlYTlmLi45NmRiNDEyOGZk
NDA5NjgyNWM4ODlmODc3ZjNiZmMxNDczOTA2ZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdC5jcHAKQEAgLTEwMywxNCArMTAzLDExIEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNP
X1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlLCBK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90
Q29uc3RydWN0YWJsZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdD47CiAKLXRlbXBsYXRlPD4g
Y29uc3QgdW5zaWduZWQgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRET01Db25zdHJ1Y3Rvcjo6
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRE
T01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEyNSwyOSArMTIy
LDE2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdERPTUNvbnN0
cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFz
aCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZVRhYmxlSW5kZXhbOF0g
PSB7Ci0gICAgeyAyLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsg
ImluaGVyaXRMb25nQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRfaW5oZXJpdExvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdF9pbmhlcml0TG9uZ0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgImluaGVy
aXRMb25nQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdF9pbmhlcml0TG9uZ0F0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0X2luaGVyaXRMb25nQXR0cmlidXRlKSB9
IH0sCiAgICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1
bmN0aW9uX3RvSlNPTiksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBI
YXNoVGFibGUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVUYWJsZSA9IHsgMywg
NywgdHJ1ZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6OmluZm8oKSwgSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlw
ZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0UHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAKaW5kZXggMjYzZmMz
ZWE1OWM1YmY0N2NkY2ZiOWY0ZGFlNTA0NGY3OGY3OWY3Ny4uODA3YTc4OGI0YmY0YTBlNGRjODhm
NmNhZjk1ZWYzNzgxNjNmYTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsLmNwcApAQCAtMTA1LDE0ICsxMDUsMTEgQEAgcHJpdmF0ZToKICAgICB9
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlw
ZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZTo6QmFzZSk7CiAKIHVz
aW5nIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01Db25zdHJ1Y3RvciA9IEpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWw+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWwiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01Db25zdHJ1Y3RvcikgfTsK
IAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTI3LDMxICsxMjQsMTcgQEAgdGVtcGxh
dGU8PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01Db25zdHJ1Y3Rvcjo6
aW5pdGlhbGl6ZVByb3BlcnQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQ
cm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVUYWJsZUluZGV4WzldID0gewotICAg
IHsgMSwgOCB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHBy
b3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0
cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCi0gICAgeyAiZmluYWxMb25nQXR0cmlidXRlRm9vIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5hbExvbmdB
dHRyaWJ1dGVGb28pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0
dHJpYnV0ZUZvbykgfSB9LAotICAgIHsgImZpbmFsTG9uZ0F0dHJpYnV0ZUJhciIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmlu
YWxMb25nQXR0cmlidXRlQmFyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5h
bExvbmdBdHRyaWJ1dGVCYXIpIH0gfSwKKyAgICB7ICJmaW5hbExvbmdBdHRyaWJ1dGVGb28iLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25nQXR0cmlidXRlRm9vKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5hbExvbmdBdHRyaWJ1dGVGb28pIH0gfSwKKyAg
ICB7ICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxf
ZmluYWxMb25nQXR0cmlidXRlQmFyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9m
aW5hbExvbmdBdHRyaWJ1dGVCYXIpIH0gfSwKICAgICB7ICJ0b0pTT04iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvbl90b0pTT04pLCAoaW50cHRyX3QpICgw
KSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxQcm90b3R5cGVUYWJsZSA9IHsgNCwgNywgdHJ1ZSwgSlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbDo6aW5mbygpLCBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
UHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90
b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWwiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFBy
b3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWwiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
bGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGUuY3BwCmluZGV4IGY4MjA1MmY2ZmNlNjhm
YTNkMzc3NmZlODJlM2ZjOWVjYTNlOTJlMjkuLmFiMTYzM2Q2YjgxYzAzYjEzN2QxY2I5N2RlMzc1
NmUxNmNhNDJhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVsZWdhdGVU
b1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZS5jcHAKQEAgLTg0LDE0ICs4NCwxMSBAQCBwcml2YXRl
OgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNT
RVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGlj
QXR0cmlidXRlUHJvdG90eXBlLCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmli
dXRlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRo
ZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGU8SlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZT47CiAKLXRlbXBs
YXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJp
YnV0ZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
OwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRo
ZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVsZWdhdGVUb1No
YXJlZFN5bnRoZXRpY0F0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJp
YnV0ZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RGVsZWdh
dGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCkBAIC0xMDcsNDIgKzEwNCwxOSBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RGVsZWdhdGVU
b1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaQogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRp
Y0F0dHJpYnV0ZVByb3RvdHlwZVRhYmxlSW5kZXhbMThdID0gewotICAgIHsgNSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0s
Ci0gICAgeyAxLCAxNiB9LAotICAgIHsgMCwgMTcgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAotfTsK
LQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlUHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERl
bGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7
ICJwcm9wZXJ0eTEiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWxlZ2F0
ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWxl
Z2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpIH0gfSwKLSAg
ICB7ICJwcm9wZXJ0eTIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWxl
Z2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RE
ZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpIH0gfSwK
LSAgICB7ICJwcm9wZXJ0eTMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RE
ZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpIH0g
fSwKLSAgICB7ICJwcm9wZXJ0eTQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTIpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTIp
IH0gfSwKLSAgICB7ICJwcm9wZXJ0eTUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTIp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlX3NoYXJlZEF0dHJpYnV0
ZTIpIH0gfSwKKyAgICB7ICJwcm9wZXJ0eTEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNB
dHRyaWJ1dGVfc2hhcmVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0
aWNBdHRyaWJ1dGVfc2hhcmVkQXR0cmlidXRlMSkgfSB9LAorICAgIHsgInByb3BlcnR5MiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZV9zaGFyZWRBdHRyaWJ1dGUxKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZV9zaGFyZWRBdHRyaWJ1dGUxKSB9
IH0sCisgICAgeyAicHJvcGVydHkzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmli
dXRlX3NoYXJlZEF0dHJpYnV0ZTEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0
cmlidXRlX3NoYXJlZEF0dHJpYnV0ZTEpIH0gfSwKKyAgICB7ICJwcm9wZXJ0eTQiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlbGVn
YXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVfc2hhcmVkQXR0cmlidXRlMiksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERl
bGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVfc2hhcmVkQXR0cmlidXRlMikgfSB9LAor
ICAgIHsgInByb3BlcnR5NSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZV9z
aGFyZWRBdHRyaWJ1dGUyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0
ZV9zaGFyZWRBdHRyaWJ1dGUyKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpT
VGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZSA9IHsg
NiwgMTUsIHRydWUsIEpTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGU6Omlu
Zm8oKSwgSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZVByb3RvdHlwZVRh
YmxlVmFsdWVzLCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlUHJvdG90
eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlbGVnYXRlVG9TaGFyZWRT
eW50aGV0aWNBdHRyaWJ1dGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REZWxlZ2F0ZVRvU2hh
cmVkU3ludGhldGljQXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdERlbGVnYXRlVG9T
aGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlUHJvdG90
eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNB
dHRyaWJ1dGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhl
dGljQXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlUHJvdG90
eXBlKSB9OwogCiB2b2lkIEpTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2Vj
dXJpdHkuY3BwCmluZGV4IDRmZmYzYWQzMWI1MDRhMGYyZmI5Yjc0OGI0OWFmYTU0NDY3MTViMTAu
LjdlZjk0OWMxMDJjMWNlYzE0NTEyOTI2M2EwOWU1NjYxZDllZjA0MGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERvbWFpblNlY3VyaXR5LmNwcApAQCAtOTQsMTQgKzk0LDI1IEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlLCBKU1Rlc3REb21h
aW5TZWN1cml0eVByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVzdERvbWFpblNlY3VyaXR5
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RE
b21haW5TZWN1cml0eT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0RG9tYWlu
U2VjdXJpdHlET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKKy8qIEhhc2ggdGFibGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTVGVzdERvbWFpblNlY3VyaXR5VGFibGVJbmRleFsyXSA9IHsKKyAgICB7IDAsIC0x
IH0sCisgICAgeyAtMSwgLTEgfSwKK307CisKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdERvbWFpblNlY3VyaXR5VGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiZXhjaXRpbmdB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERvbWFpblNlY3VyaXR5
X2V4Y2l0aW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0
RG9tYWluU2VjdXJpdHlUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0RG9tYWluU2VjdXJpdHk6
OmluZm8oKSwgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZVZhbHVlcywgSlNUZXN0RG9tYWluU2Vj
dXJpdHlUYWJsZUluZGV4IH07CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REb21h
aW5TZWN1cml0eURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdERvbWFpblNlY3VyaXR5RE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3REb21haW5TZWN1cml0eURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBA
IC0xMTcsMjEgKzEyOCw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3REb21haW5TZWN1cml0eURP
TUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sCiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1
Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZVRhYmxlSW5k
ZXhbMTBdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCA4IH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIDkgfSwKLSAgICB7IDMsIC0x
IH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CkBAIC0xNDEsOCArMTM4LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAib3Zlcmxv
YWRlZE1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9h
ZGVkTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZVRhYmxlID0geyA0LCA3LCB0cnVlLCBK
U1Rlc3REb21haW5TZWN1cml0eTo6aW5mbygpLCBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlw
ZVRhYmxlVmFsdWVzLCBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZVRhYmxlSW5kZXggfTsK
LWNvbnN0IENsYXNzSW5mbyBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZTo6c19pbmZvID0g
eyAiVGVzdERvbWFpblNlY3VyaXR5IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdERvbWFpblNlY3Vy
aXR5UHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RG9t
YWluU2VjdXJpdHlQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RG9tYWluU2Vj
dXJpdHlQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REb21haW5TZWN1cml0eSIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RG9tYWlu
U2VjdXJpdHlQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTE1MSwyMSArMTQ3LDcgQEAgdm9pZCBK
U1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAg
IEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi0vKiBIYXNoIHRh
YmxlIGZvciBJbnN0YW5jZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5k
ZXggSlNUZXN0RG9tYWluU2VjdXJpdHlJbnN0YW5jZVRhYmxlSW5kZXhbMl0gPSB7Ci0gICAgeyAw
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3REb21haW5TZWN1cml0eUluc3RhbmNlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAg
eyAiZXhjaXRpbmdBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REb21haW5TZWN1cml0eV9leGNpdGluZ0F0
dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihudWxscHRyKSB9IH0sCi19OwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdERvbWFp
blNlY3VyaXR5SW5zdGFuY2VUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0RG9tYWluU2VjdXJp
dHk6OmluZm8oKSwgSlNUZXN0RG9tYWluU2VjdXJpdHlJbnN0YW5jZVRhYmxlVmFsdWVzLCBKU1Rl
c3REb21haW5TZWN1cml0eUluc3RhbmNlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdERvbWFpblNlY3VyaXR5OjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHkiLCAmQmFz
ZTo6c19pbmZvLCAmSlNUZXN0RG9tYWluU2VjdXJpdHlJbnN0YW5jZVRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERvbWFpblNlY3VyaXR5KSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdERvbWFpblNlY3VyaXR5OjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHki
LCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZSwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3REb21haW5TZWN1cml0eSkgfTsKIAogSlNUZXN0RG9tYWlu
U2VjdXJpdHk6OkpTVGVzdERvbWFpblNlY3VyaXR5KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdERvbWFpblNlY3VyaXR5PiYmIGlt
cGwpCiAgICAgOiBKU0RPTVdyYXBwZXI8VGVzdERvbWFpblNlY3VyaXR5PihzdHJ1Y3R1cmUsIGds
b2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5n
LmNwcAppbmRleCA0MjI4MWY3Y2JmYmFlNWRmMGRiMjdlY2M2ZmY2NTU4NzA0ZDJkZmJmLi4yM2Jm
NzU3ZWE0ZmE1NGI0ZDI2ZmM0YTE5MmVkNGM5OGQ2ZWM4YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRCeVNldHRpbmcuY3BwCkBAIC0xMDYsNDIgKzEwNiwzNSBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlLCBKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0RPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz47CiAKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdEVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcl9lbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQoVk0mLCBK
U09iamVjdCopCi17Ci0gICAgcmV0dXJuIGpzTnVtYmVyKDApOwotfQorLyogSGFzaCB0YWJsZSAq
LwogCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3JfZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Ci17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQ7Ci19CitzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1RhYmxlSW5kZXhb
Ml0gPSB7CisgICAgeyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorfTsKIAotLyogSGFzaCB0
YWJsZSBmb3IgQ29uc3RydWN0b3IgKi8KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclRhYmxlSW5kZXhbMl0gPSB7
Ci0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCitzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1RhYmxlVmFsdWVzW10gPQoreworICAgIHsgMCwg
MCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0KIH07CiAKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUg
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1RhYmxlID0geyAwLCAxLCBmYWxzZSwgSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZzo6aW5mbygpLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGFibGVWYWx1ZXMsIEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdUYWJsZUluZGV4IH07CisvKiBIYXNoIHRhYmxlIGZvciBjb25z
dHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAiZW5hYmxlZEJ5U2V0
dGluZ0NvbnN0YW50IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJv
cGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQ
cm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Jf
ZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQ
cm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yX2VuYWJsZWRCeVNldHRpbmdDb25zdGFudCkgfSB9LAorICAgIHsgImVuYWJsZWRC
eVNldHRpbmdDb25zdGFudCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMCkgfSB9LAogfTsK
IAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3JUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgbnVsbHB0ciwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yVGFibGVWYWx1ZXMsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclRh
YmxlSW5kZXggfTsKIHN0YXRpY19hc3NlcnQoVGVzdEVuYWJsZWRCeVNldHRpbmc6OmVuYWJsZWRC
eVNldHRpbmdDb25zdGFudCA9PSAwLCAiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50IGluIFRlc3RF
bmFibGVkQnlTZXR0aW5nIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CiAKLXRlbXBs
YXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0RPTUNvbnN0cnVjdG9y
OjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOwotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIs
ICZCYXNlOjpzX2luZm8sICZKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JUYWJsZSwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRE9NQ29u
c3RydWN0b3IpIH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFbmFibGVkQnlTZXR0aW5nIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKQEAgLTE1NCwxNjYgKzE0Nyw5MyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0RPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdgogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nOjpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlRlc3RFbmFibGVkQnlTZXR0
aW5nIl9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICByZWlmeVN0YXRpY1Byb3Bl
cnRpZXModm0sIG51bGxwdHIsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclRhYmxl
VmFsdWVzLCAqdGhpcyk7Ci19Ci0KLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIEpT
VmFsdWUgY3JlYXRlSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlTZXR0
aW5nQXR0cmlidXRlKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRyaWJ1
dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVk
QnlTZXR0aW5nQXR0cmlidXRlLCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nX2VuYWJsZWRCeVNl
dHRpbmdBdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nOjppbmZvKCksIG51bGxwdHIgfSk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxP
YmplY3QpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRp
bmdFbmFibGVkOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGlj
IEpTVmFsdWUgY3JlYXRlSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlU
d29TZXR0aW5nc0F0dHJpYnV0ZShWTSYgdm0sIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gRE9N
QXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdf
ZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUsIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdf
ZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nOjppbmZvKCksIG51bGxwdHIgfSk7Ci19Ci0KLXN0YXRpYyBi
b29sIGlzRW5hYmxlZEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVfZW5hYmxlZEJ5VHdv
U2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBV
TlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGlu
Z3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQgJiYganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVl
cygpLm90aGVyVGVzdFNldHRpbmdFbmFibGVkKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgSlNWYWx1
ZSBjcmVhdGVKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlX3N1cHBsZW1lbnRhbEF0dHJp
YnV0ZShWTSYgdm0sIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gRE9NQXR0cmlidXRlR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfc3VwcGxlbWVudGFsQXR0
cmlidXRlLCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nX3N1cHBsZW1lbnRhbEF0dHJpYnV0ZSwg
RE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OmluZm8oKSwg
bnVsbHB0ciB9KTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ1Byb3RvdHlwZV9zdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0Zyb21QYXJ0aWFsSW50ZXJm
YWNlQXR0cmlidXRlRW5hYmxlZCAmJiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxP
YmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNl
dHRpbmdGcm9tUGFydGlhbEludGVyZmFjZUVuYWJsZWQpOwotfQotCi0jaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90
b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmplY3QtPmds
b2JhbE9iamVjdCgpLCAxLCAiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiJfcywganNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uX2VuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24p
OwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90
eXBlX2VuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZDsKLX0KLSNlbmRpZgotCi1z
dGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlX2VuYWJs
ZWRCeVNldHRpbmdDb25zdGFudChWTSYsIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4ganNOdW1i
ZXIoMCk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQ
cm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQ7CisgICAgcmVpZnlT
dGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjppbmZvKCksIEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CisgICAgaWYg
KCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkgeworICAg
ICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50IiksIHN0
cmxlbigiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50IikpOworICAgICAgICBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNv
bmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICB9CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1z
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1Byb3RvdHlwZVRhYmxlSW5kZXhbMTddID0gewotICAgIHsgMywgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAxNiB9LAotICAgIHsgNSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMiwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5BQkxF
KFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGVfZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNM
YXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdQcm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgImVuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5U2V0dGlu
Z0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5U2V0dGluZ0F0dHJp
YnV0ZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQnlUd29TZXR0
aW5nc0F0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nUHJvdG90eXBlX2VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNF
bmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlUd29TZXR0aW5n
c0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nX2VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSkgfSB9LAogI2Vs
c2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAi
c3VwcGxlbWVudGFsQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0
ZUpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVfc3VwcGxlbWVudGFsQXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNF
bmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9zdXBwbGVtZW50YWxBdHRyaWJ1
dGUpIH0gfSwKKyAgICB7ICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRCeVNldHRp
bmdfc3VwcGxlbWVudGFsQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19zdXBwbGVt
ZW50YWxBdHRyaWJ1dGUpIH0gfSwKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIHsgImVu
YWJsZWRCeVNldHRpbmdPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKSB9IH0s
CisgICAgeyAiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1Byb3RvdHlwZUZ1bmN0aW9uX2VuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24pLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAj
ZW5kaWYKLSAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEVu
YWJsZWRCeVNldHRpbmdQcm90b3R5cGVfZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50KSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVk
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZV9lbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQp
IH0gfSwKKyAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChs
b25nIGxvbmcpKDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Byb3RvdHlwZVRhYmxlID0geyA2LCAxNSwgdHJ1ZSwgSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZzo6aW5mbygpLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlVGFibGVW
YWx1ZXMsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25z
dCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdEVuYWJsZWRCeVNldHRpbmciLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ1Byb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRCeVNldHRpbmciLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmc6OmluZm8oKSwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZVRhYmxl
VmFsdWVzLCAqdGhpcyk7CisgICAgYm9vbCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0g
ZmFsc2U7CisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5z
ZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkgeworICAgICAgICBoYXNEaXNhYmxl
ZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nT3Bl
cmF0aW9uIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0s
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlm
CisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5n
c1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRl
IikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVBy
b3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAoIShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1
ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQgJiYganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCku
b3RoZXJUZXN0U2V0dGluZ0VuYWJsZWQpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVBy
b3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5
VHdvU2V0dGluZ3NBdHRyaWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJp
YnV0ZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxl
dGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRo
aXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgor
ICAgIGlmICghKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRnJvbVBh
cnRpYWxJbnRlcmZhY2VBdHRyaWJ1dGVFbmFibGVkICYmIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1Zh
bHVlcygpLnRlc3RTZXR0aW5nRnJvbVBhcnRpYWxJbnRlcmZhY2VFbmFibGVkKSkgeworICAgICAg
ICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oInN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIpLCBzdHJsZW4oInN1cHBsZW1lbnRh
bEF0dHJpYnV0ZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyAg
ICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkg
eworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdDb25zdGFudCIpLCBzdHJsZW4o
ImVuYWJsZWRCeVNldHRpbmdDb25zdGFudCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIH0KKyAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiBzdHJ1
Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0
KHZtKTsKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIAot
c3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlX1Rlc3RT
dWJPYmpFbmFibGVkQnlTZXR0aW5nKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBD
dXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0
U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCBudWxscHRyKTsKLX0KLQotc3RhdGlj
IGJvb2wgaXNFbmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlX1Rlc3RTdWJPYmpF
bmFibGVkQnlTZXR0aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NW
YWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQ7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpT
VGVzdEVuYWJsZWRCeVNldHRpbmdJbnN0YW5jZV9UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1By
aXZhdGVQdWJsaWMoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIEN1c3RvbUdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFi
bGVkQnlTZXR0aW5nUHJpdmF0ZVB1YmxpY0NvbnN0cnVjdG9yLCBudWxscHRyKTsKLX0KLQotc3Rh
dGljIGJvb2wgaXNFbmFibGVkSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlX1Rlc3RTdWJP
YmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZVB1YmxpYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmdFbmFibGVkOwotfQotCi0vKiBIYXNo
IHRhYmxlIGZvciBJbnN0YW5jZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlVGFibGVJbmRleFs1XSA9IHsKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCA0IH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDEsIC0xIH0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nSW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7
ICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVh
dGVKU1Rlc3RFbmFibGVkQnlTZXR0aW5nSW5zdGFuY2VfVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRp
bmcpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNr
Pihpc0VuYWJsZWRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nSW5zdGFuY2VfVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmcpIH0gfSwKLSAgICB7ICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1ByaXZh
dGVQdWJsaWMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2ssIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ0luc3RhbmNlX1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZVB1YmxpYyksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5h
YmxlZEpTVGVzdEVuYWJsZWRCeVNldHRpbmdJbnN0YW5jZV9UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ1ByaXZhdGVQdWJsaWMpIH0gfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdEVu
YWJsZWRCeVNldHRpbmc6OmluZm8oKSwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0luc3RhbmNlVGFi
bGVWYWx1ZXMsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdJbnN0YW5jZVRhYmxlSW5kZXggfTsKLWNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpzX2luZm8gPSB7ICJUZXN0RW5h
YmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RFbmFibGVkQnlTZXR0aW5nSW5z
dGFuY2VUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OnNfaW5m
byA9IHsgIlRlc3RFbmFibGVkQnlTZXR0aW5nIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEVuYWJs
ZWRCeVNldHRpbmdUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nKSB9OwogCiBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBSZWY8VGVzdEVuYWJsZWRCeVNldHRpbmc+JiYgaW1wbCkKICAgICA6IEpTRE9NV3Jh
cHBlcjxUZXN0RW5hYmxlZEJ5U2V0dGluZz4oc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURk1v
dmUoaW1wbCkpCkBAIC0zMjgsOSArMjQ4LDEzIEBAIHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zzo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFz
ZV9vZjxBY3RpdmVET01PYmplY3QsIFRlc3RFbmFibGVkQnlTZXR0aW5nPjo6dmFsdWUsICJJbnRl
cmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBs
ZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKIAogICAgIGlm
IChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQpCi0gICAg
ICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ1ByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1ByaXZhdGVD
b25zdHJ1Y3RvciwgbnVsbHB0ciksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21WYWx1ZSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nv
cih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRp
bk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdQdWJsaWNOYW1lKCksIEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpKTsKICAgICBpZiAoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFsdWVzKCkudGVzdFNldHRpbmdF
bmFibGVkKQotICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuVGVzdFN1Yk9i
akVuYWJsZWRCeVNldHRpbmdQcml2YXRlUHVibGljUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmdQcml2YXRlUHVibGljQ29uc3RydWN0b3IsIG51bGxwdHIpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tVmFsdWUpKTsKKyAgICAg
ICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRh
Kj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0
aW5nUHJpdmF0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZUNv
bnN0cnVjdG9yLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CisgICAgaWYgKGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkgeworICAgICAg
ICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRp
bmdQcml2YXRlUHVibGljUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1ByaXZh
dGVQdWJsaWNDb25zdHJ1Y3RvciwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkpOwor
ICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVu
dERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdQcml2YXRlUHVibGljUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpj
cmVhdGUodm0sIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRp
bmdQcml2YXRlUHVibGljQ29uc3RydWN0b3IsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpKTsKKyAgICB9CiB9CiAKIEpTT2JqZWN0KiBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpjcmVh
dGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRGb3JDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHAKaW5kZXggZjYyMmE2NGMyMDYyNzhlYzcz
OWJkOWE5ZjZiNTYzNDVhMzJhMTk5MS4uNjI0ZWQ1MTU2NDdmN2M1ZWM2N2Q0MDMyZDJkYjQ3NjUy
ZDdlOTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCkBAIC04MCwx
NCArODAsMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RW5hYmxl
ZEZvckNvbnRleHRQcm90b3R5cGUsIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0UHJvdG90eXBlOjpC
YXNlKTsKIAogdXNpbmcgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRET01Db25zdHJ1Y3RvciA9IEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0PjsK
IAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dERPTUNv
bnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEZvckNvbnRleHRET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRGb3JDb250ZXh0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dERPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RW5hYmxlZEZv
ckNvbnRleHRET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTAzLDIxICsxMDAs
MTQgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0RE9NQ29uc3RydWN0
b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJgogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2gg
dGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9y
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsK
IAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFByb3RvdHlw
ZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6aW5mbygpLCBK
U1Rlc3RFbmFibGVkRm9yQ29udGV4dFByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRGb3JDb250
ZXh0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEVuYWJsZWRGb3JDb250ZXh0UHJvdG90eXBlVGFi
bGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQ
cm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFbmFibGVkRm9yQ29udGV4dCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEZvckNv
bnRleHRQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEyNiwzMiArMTE2LDcgQEAgdm9pZCBK
U1Rlc3RFbmFibGVkRm9yQ29udGV4dFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1zdGF0aWMg
SlNWYWx1ZSBjcmVhdGVKU1Rlc3RFbmFibGVkRm9yQ29udGV4dEluc3RhbmNlX1Rlc3RTdWJPYmpF
bmFibGVkRm9yQ29udGV4dChWTSYgdm0sIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gQ3VzdG9t
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0X1Rlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCBudWxscHRyKTsKLX0KLQotc3RhdGljIGJv
b2wgaXNFbmFibGVkSlNUZXN0RW5hYmxlZEZvckNvbnRleHRJbnN0YW5jZV9UZXN0U3ViT2JqRW5h
YmxlZEZvckNvbnRleHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NW
YWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQgJiYgVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0
OjplbmFibGVkRm9yQ29udGV4dCgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7Ci19Ci0KLS8qIEhhc2ggdGFibGUgZm9y
IEluc3RhbmNlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dEluc3RhbmNlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IDAsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLX07Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0SW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7
ICJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2ssIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3Jl
YXRlSlNUZXN0RW5hYmxlZEZvckNvbnRleHRJbnN0YW5jZV9UZXN0U3ViT2JqRW5hYmxlZEZvckNv
bnRleHQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxi
YWNrPihpc0VuYWJsZWRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dEluc3RhbmNlX1Rlc3RTdWJPYmpF
bmFibGVkRm9yQ29udGV4dCkgfSB9LAotfTsKLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dEluc3RhbmNlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0OjppbmZvKCksIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0SW5zdGFuY2VU
YWJsZVZhbHVlcywgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRJbnN0YW5jZVRhYmxlSW5kZXggfTsK
LWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6c19pbmZvID0geyAiVGVz
dEVuYWJsZWRGb3JDb250ZXh0IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEVuYWJsZWRGb3JDb250
ZXh0SW5zdGFuY2VUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dCkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dDo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRGb3JDb250ZXh0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dCkgfTsKIAogSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6OkpTVGVzdEVuYWJsZWRGb3JDb250ZXh0
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdEVuYWJsZWRGb3JDb250ZXh0PiYmIGltcGwpCiAgICAgOiBKU0RPTVdyYXBwZXI8VGVz
dEVuYWJsZWRGb3JDb250ZXh0PihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSkKQEAgLTE2NSw2ICsxMzAsOCBAQCB2b2lkIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiAKICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8
QWN0aXZlRE9NT2JqZWN0LCBUZXN0RW5hYmxlZEZvckNvbnRleHQ+Ojp2YWx1ZSwgIkludGVyZmFj
ZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVu
dGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOwogCisgICAgaWYgKChq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQgJiYgVGVzdFN1
Yk9iakVuYWJsZWRGb3JDb250ZXh0OjplbmFibGVkRm9yQ29udGV4dCgqanNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKSkK
KyAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLlRlc3RTdWJPYmpFbmFibGVk
Rm9yQ29udGV4dFB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpz
VGVzdEVuYWJsZWRGb3JDb250ZXh0X1Rlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVj
dG9yLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CiB9CiAKIEpTT2JqZWN0KiBK
U1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNw
cAppbmRleCBlMjg5Yzg5YWIzZWIwNmZjMWQxZGVkMWU2M2Q4NzY3NDE5NjdlMTg1Li4wZTcwMjM0
M2QwYzk4ZjdjNmJiMzM2MzJmODMyMDdlZThhZjEyOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCkBAIC0xNjEsOCArMTYxLDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBK
U0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSwgSlNUZXN0RXZlbnRD
b25zdHJ1Y3RvclByb3RvdHlwZTo6QmFzZSk7CiAKQEAgLTE5Myw3ICsxOTEsNiBAQCB0ZW1wbGF0
ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RFdmVudENv
bnN0cnVjdG9yRE9NQ29ucwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RFdmVudENvbnN0cnVj
dG9yRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWdu
ZWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0
RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25z
dHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0
ZTw+IEpTVmFsdWUgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0yMDgsMzUgKzIwNSwyMSBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdgog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0
aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclBy
b3RvdHlwZVRhYmxlSW5kZXhbOV0gPSB7Ci0gICAgeyAzLCAtMSB9LAotICAgIHsgMCwgOCB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9
LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJhdHRyMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRD
b25zdHJ1Y3Rvcl9hdHRyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJhdHRyMiIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcl9hdHRyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJhdHRyMSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVudENvbnN0cnVjdG9yX2F0dHIx
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorICAgIHsgImF0dHIyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5BQkxFKFNQRUNJQUxfRVZF
TlQpCi0gICAgeyAiYXR0cjMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjMp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCisgICAgeyAiYXR0cjMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0RXZlbnRDb25zdHJ1Y3Rvcl9hdHRyMyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogfTsKIAotc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlVGFibGUgPSB7IDQsIDcsIHRy
dWUsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmluZm8oKSwgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
clByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlVGFi
bGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVudENvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgJkpT
VGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVu
dENvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKSB9OwogCiB2b2lkIEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDgwZDliNDdlMTY2M2Q0YWE4MWUzMmZiODAy
MDAxYzU5OTk0M2VmNGQuLjdiMGJhZTNhNDA1MGZhYzIyZjZmYWFjYjRmMGViMTM4M2I4OTQ5NTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtODcsMTQgKzg3LDExIEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlLCBKU1Rl
c3RFdmVudFRhcmdldFByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVzdEV2ZW50VGFyZ2V0
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RF
dmVudFRhcmdldD47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0RXZlbnRUYXJn
ZXRET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0RE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRET01Db25zdHJ1
Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEV2ZW50VGFyZ2V0RE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwOSwxNSArMTA2LDcgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdEV2ZW50VGFyZ2V0RE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVz
KFZNJiB2bSwgSlMKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5
cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2gg
dGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKQEAgLTEyNSw4ICsxMTQs
NyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJpdGVtIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZUZ1bmN0aW9uX2l0ZW0pLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlVGFibGUgPSB7IDIsIDMsIHRydWUs
IEpTVGVzdEV2ZW50VGFyZ2V0OjppbmZvKCksIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlVGFi
bGVWYWx1ZXMsIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RXZl
bnRUYXJnZXQiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVUYWJs
ZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdEV2ZW50VGFyZ2V0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSkgfTsKIAogdm9p
ZCBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBlMWZkMDA3YjIzMjg3OWE3ZDIyMTY5Zjg0YThkNjMz
NzRmOWNkMTdhLi5iM2Q2MjUxM2Y1MjE0NTVhNDU1MDc4NjExMmNhZGVlZDMwMmU2MzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtODAsMTQgKzgwLDExIEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSwgSlNUZXN0RXhjZXB0aW9u
UHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3RydWN0b3Ig
PSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RFeGNlcHRpb24+OwogCi10
ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdEV4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RF
eGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdEV4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAg
LTEwMywyNSArMTAwLDE1IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RFeGNlcHRpb25ET01Db25z
dHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPCiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1
Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGVUYWJsZUluZGV4WzVd
ID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCA0IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHBy
b3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXhjZXB0aW9u
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgIm5hbWUiLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEV4Y2VwdGlvbl9uYW1lKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAorICAgIHsgIm5hbWUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXhjZXB0aW9uX25hbWUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZVRhYmxlID0g
eyAyLCAzLCB0cnVlLCBKU1Rlc3RFeGNlcHRpb246OmluZm8oKSwgSlNUZXN0RXhjZXB0aW9uUHJv
dG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZVRhYmxlSW5kZXggfTsK
LWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRl
c3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlVGFi
bGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBl
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZTo6c19pbmZvID0g
eyAiVGVzdEV4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVz
dEV4Y2VwdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
QWRkT3BhcXVlUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290LmNwcAppbmRleCAyZDM3MTUxNzBiYTU2MDRj
Zjk3MGIyZTE0MTA1YTEwNWEwMTNlNTA4Li4yZjRlNmFhZjc1NTI5YmZiNzM1OGMwMGE2NDQyM2I2
ZjFhYmFhM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290LmNw
cApAQCAtODAsMTQgKzgwLDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpT
VGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdFByb3RvdHlwZSwgSlNUZXN0R2VuZXJhdGVBZGRPcGFx
dWVSb290UHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVS
b290RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rl
c3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Q+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpT
VGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdERPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0
R2VuZXJhdGVBZGRPcGFxdWVSb290RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RHZW5l
cmF0ZUFkZE9wYXF1ZVJvb3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdERPTUNvbnN0cnVjdG9y
KSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290RE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwMywyNCArMTAwLDE1IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RET01Db25zdHJ1Y3Rvcjo6aW5p
dGlhbGl6ZVByb3BlcnRpZXMoCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3Ig
UHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rl
c3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGVUYWJsZUluZGV4WzRdID0gewotICAgIHsg
MSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2VuZXJhdGVB
ZGRPcGFxdWVSb290Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAic29tZUF0dHJpYnV0ZSIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290X3NvbWVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9
IH0sCisgICAgeyAic29tZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Rfc29tZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAK
LXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290UHJvdG90
eXBlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdDo6aW5m
bygpLCBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNU
ZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdFByb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RHZW5lcmF0
ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
R2VuZXJhdGVBZGRPcGFxdWVSb290IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAKaW5kZXggZGNlZDY4OTA2NGQyNjlhYjIwOWUwY2ZmYTg3NWYzYWZjY2U4YWRhYy4uNTUyODkz
NjczMDU2N2EzMGMwOTZmZTEyM2IzZGZmNWQ0NTA3YjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtODAsMTQgKzgwLDExIEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNP
X1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUsIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPjsKIAotdGVtcGxhdGU8PiBjb25z
dCB1bnNpZ25lZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3I6OlN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3Ry
dWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwMyw0MSArMTAwLDMwIEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3I6Omlu
aXRpYWxpemVQcm9wZXJ0aWVzKFZNCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotc3RhdGljIEpTVmFsdWUg
Y3JlYXRlSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZV9hU2VjcmV0QXR0cmlidXRl
KFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZV9hU2VjcmV0QXR0cmlidXRl
LCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZTo6aW5mbygpLCBudWxscHRyIH0pOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlX2FTZWNyZXRBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsK
LSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKTsKLX0KLQotLyogSGFzaCB0
YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlVGFibGVJbmRleFs1XSA9IHsK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgNCB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5
cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsg
ImFTZWNyZXRBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
UHJvdG90eXBlX2FTZWNyZXRBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6
eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlUHJvdG90eXBlX2FTZWNyZXRBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJhU2VjcmV0QXR0cmli
dXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVfYVNlY3JldEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFi
bGUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZVRhYmxlID0geyAyLCAzLCB0cnVl
LCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjppbmZvKCksIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3Rv
dHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIsICZCYXNl
OjpzX2luZm8sICZKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlVGFibGUsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlw
ZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZTo6aW5mbygpLCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlVGFibGVWYWx1
ZXMsICp0aGlzKTsKKyAgICBib29sIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSBmYWxz
ZTsKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBo
YXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImFTZWNyZXRBdHRyaWJ1dGUiKSwgc3RybGVuKCJhU2VjcmV0QXR0cmlidXRlIikp
OworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorICAgIGlmIChoYXNEaXNh
YmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAg
ICAgICAgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAgIEpTQ19UT19TVFJJTkdfVEFH
X1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDQ2MzgyYTYxMjY5NjVmODE5N2FiZWU4MmM4MGIxYzk0MDMzMWU0ZTcuLmI1Nzk4MTAxNWM3
Y2ZiNTFjZWEyZDA5NDY0ZGU4MjA5OThlYTllNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3Qu
Y3BwCkBAIC0yNDEsMTgyICsyNDEsMzUgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKTsKIAogdXNpbmcg
SlNUZXN0R2xvYmFsT2JqZWN0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2ln
bmVkIEpTVGVzdEdsb2JhbE9iamVjdERPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOwotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2xv
YmFsT2JqZWN0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RHbG9iYWxPYmplY3QiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEdsb2JhbE9iamVjdERPTUNvbnN0cnVjdG9yKSB9OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUgSlNU
ZXN0R2xvYmFsT2JqZWN0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6
OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBV
TlVTRURfUEFSQU0odm0pOwotICAgIHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5
cGUoKTsKLX0KLQotdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEdsb2JhbE9iamVjdERPTUNvbnN0cnVj
dG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIGdsb2JhbE9iamVjdC5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJUZXN0R2xvYmFsT2Jq
ZWN0Il9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KKy8qIEhhc2ggdGFibGUgKi8K
IAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RQcm90b3R5cGVUYWJsZUluZGV4WzJd
ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9i
amVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwK
LX07Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbE9iamVjdFBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBI
YXNoVGFibGUgSlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90eXBlVGFibGUgPSB7IDEsIDEsIHRydWUs
IEpTVGVzdEdsb2JhbE9iamVjdDo6aW5mbygpLCBKU1Rlc3RHbG9iYWxPYmplY3RQcm90b3R5cGVU
YWJsZVZhbHVlcywgSlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVz
dEdsb2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RHbG9iYWxPYmplY3RQcm90b3R5
cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHbG9iYWxPYmplY3RQ
cm90b3R5cGUpIH07Ci0KLXZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEpT
Q19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwotfQotCi0jaWYgRU5BQkxFKFRF
U1RfRkVBVFVSRSkKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAg
cmV0dXJuIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3Rf
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSwgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRB
dFJ1bnRpbWVBdHRyaWJ1dGUpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RHbG9i
YWxPYmplY3RJbnN0YW5jZV9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAg
cmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1
cmVFbmFibGVkKCk7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0
aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkQXRSdW50
aW1lT3BlcmF0aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJu
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDEsICJl
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIl9zLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24pOwotfQotCi1zdGF0aWMgYm9vbCBpc0Vu
YWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2Jh
bE9iamVjdCk7Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCk7Ci19Ci0jZW5kaWYKLQotc3RhdGljIEpTVmFsdWUg
Y3JlYXRlSlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VfZW5hYmxlZEluU3BlY2lmaWNXb3JsZChW
TSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAxLCAiZW5hYmxlZEluU3BlY2lm
aWNXb3JsZCJfcywganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5T
cGVjaWZpY1dvcmxkKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VfZW5hYmxlZEluU3BlY2lmaWNXb3JsZChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT53b3JsZCgpLnNwZWNpZmlj
V29ybGQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VfZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQoVk0m
IHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMSwgImVuYWJsZWRJblNwZWNpZmlj
V29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIl9zLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFi
bGVkKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VfZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0
KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkt
PndvcmxkKCkuc3BlY2lmaWNXb3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSBj
cmVhdGVKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hl
blJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsK
LSAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSwgMSwgImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxl
ZCJfcywganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOwotfQotCi1zdGF0aWMgYm9vbCBpc0Vu
YWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hl
blJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsK
LSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPndvcmxkKCkuc3BlY2lmaWNXb3JsZCgpICYm
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFi
bGVkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVh
dHVyZTFFbmFibGVkKCkpOwotfQotCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBK
U1ZhbHVlIGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlX3Rlc3RKU0J1aWx0aW5GdW5j
dGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluRnVuY3Rpb25Db2Rl
R2VuZXJhdG9yKHZtKSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkpOwotfQotCi1zdGF0aWMg
Ym9vbCBpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV90ZXN0SlNCdWlsdGluRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0o
Z2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgSlNW
YWx1ZSBjcmVhdGVKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9jYWxjdWxhdGVTZWNyZXRSZXN1
bHQoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwgImNhbGN1bGF0ZVNl
Y3JldFJlc3VsdCJfcywganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9jYWxjdWxh
dGVTZWNyZXRSZXN1bHQpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RHbG9iYWxP
YmplY3RJbnN0YW5jZV9jYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgY3JlYXRl
SlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VfZ2V0U2VjcmV0Qm9vbGVhbihWTSYgdm0sIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRo
aXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAwLCAiZ2V0U2VjcmV0Qm9vbGVhbiJfcywganNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9nZXRTZWNyZXRCb29sZWFuKTsKLX0KLQotc3Rh
dGljIGJvb2wgaXNFbmFibGVkSlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VfZ2V0U2VjcmV0Qm9v
bGVhbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShn
bG9iYWxPYmplY3QpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpOwot
fQotCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVz
dEdsb2JhbE9iamVjdEluc3RhbmNlX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihWTSYgdm0s
IEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAwLCAidGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuIl9zLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3Rlc3RGZWF0dXJl
R2V0U2VjcmV0Qm9vbGVhbik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAg
IHJldHVybiAoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKTsKLX0KLSNlbmRp
ZgotCi0vKiBIYXNoIHRhYmxlIGZvciBJbnN0YW5jZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VUYWJsZUluZGV4WzI3
MV0gPSB7Ci0gICAgeyAzLCAyNzAgfSwKLSAgICB7IDQyLCAtMSB9LAorICAgIHsgNDEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDAsIC0xIH0sCi0gICAgeyA1LCAtMSB9LAotICAgIHsg
NDYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKKyAgICB7IDQsIC0xIH0sCisgICAgeyA0NSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU2
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyA1NSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAg
IHsgNTAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDY1LCAtMSB9LAorICAgIHsgNDks
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDY0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA3MCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKQEAgLTQyNCw5MSArMjc3LDkzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZVRhYmxlSW5kZXhbMjcxXSA9CiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzNiwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyAzNSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2OSwgLTEgfSwKLSAgICB7
IDY4LCAtMSB9LAotICAgIHsgMTQsIDI2MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNjcsIC0xIH0sCisgICAgeyAxMywgMjYxIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKLSAgICB7IDQwLCAtMSB9LAotICAgIHsgMjEsIDI1OCB9LAotICAgIHsgNywg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNDcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAorICAgIHsgMzksIC0xIH0sCisgICAgeyAyMCwgMjU4IH0sCisgICAg
eyA2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyA0NiwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDM3LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMjMsIDI2NiB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsg
MjIsIDI2NiB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDYsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCisg
ICAgeyA1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzMSwgLTEgfSwKLSAgICB7IDU4LCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAg
IHsgMzAsIC0xIH0sCisgICAgeyA1NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEwLCAyNTcgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgNjAsIC0xIH0sCi0gICAgeyAyMCwgMjY4IH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAorICAgIHsgOSwgMjU3IH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDU5
LCAtMSB9LAogICAgIHsgMTksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyAxOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAg
IHsgMzcsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCisgICAgeyAzNiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMjUsIC0xIH0sCisgICAg
eyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAyNCwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgMiwgLTEgfSwKLSAgICB7IDM5LCAtMSB9LAor
ICAgIHsgMzgsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAyMiwgLTEgfSwKKyAgICB7IDIxLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTIxLDM4ICszNzYsMzgg
QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlVGFibGVJbmRleFsyNzFdID0KICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDI5LCAtMSB9LAorICAgIHsgMjgsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDQ0LCAtMSB9LAorICAgIHsgNDMsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTUsIC0xIH0sCisgICAgeyA1NCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDc2LCAtMSB9
LAotICAgIHsgNDksIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDQ4LCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDExLCAtMSB9LAorICAgIHsgMTAs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA2NiwgMjY5IH0sCisgICAgeyA2NSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDI4LCAtMSB9LAotICAgIHsgMzMsIC0xIH0s
CisgICAgeyAyNywgLTEgfSwKKyAgICB7IDMyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTYyLDkgKzQxNyw5IEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZVRh
YmxlSW5kZXhbMjcxXSA9CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxNiwgMjYwIH0sCisgICAgeyAxNSwgMjYwIH0sCiAgICAgeyAtMSwg
LTEgfSwKLSAgICB7IDYxLCAtMSB9LAorICAgIHsgNjAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC01NzMsMzUgKzQyOCwzNCBAQCBz
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VUYWJsZUluZGV4WzI3MV0gPQogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAotICAgIHsgMzUsIDI2NyB9LAorICAgIHsgMzQsIDI2NyB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxNywgMjU2IH0sCisgICAgeyAxNiwgMjU2IH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDY0LCAtMSB9LAorICAgIHsgNjMsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3NSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEzLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyAxMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDQ4LCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CisgICAgeyA0NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAxMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgMTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC02MDksNjEgKzQ2Myw1
OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VUYWJsZUluZGV4WzI3MV0gPQogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTksIC0xIH0sCisgICAgeyAtMSwgLTEgfSwK
KyAgICB7IDU4LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAxLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyA5LCAtMSB9LAorICAgIHsgOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAg
IHsgNTEsIDI2NCB9LAotICAgIHsgOCwgMjYzIH0sCisgICAgeyA1MCwgMjY0IH0sCisgICAgeyA3
LCAyNjMgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjIsIC0xIH0sCisgICAgeyA2MSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDE1
LCAtMSB9LAorICAgIHsgMTQsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDI2LCAtMSB9
LAorICAgIHsgMjUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAg
IHsgMzIsIC0xIH0sCi0gICAgeyA3NCwgLTEgfSwKKyAgICB7IDMxLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyA1MywgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTQsIC0xIH0sCisgICAgeyAzLCAtMSB9LAorICAgIHsg
NTIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDUzLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTgsIC0xIH0sCi0g
ICAgeyAyNCwgMjU5IH0sCi0gICAgeyAyNywgMjY1IH0sCi0gICAgeyAzMCwgMjYyIH0sCi0gICAg
eyAzNCwgLTEgfSwKLSAgICB7IDQxLCAtMSB9LAotICAgIHsgNDMsIC0xIH0sCi0gICAgeyA0NSwg
LTEgfSwKLSAgICB7IDUyLCAtMSB9LAotICAgIHsgNTcsIC0xIH0sCi0gICAgeyA2MywgLTEgfSwK
LSAgICB7IDY3LCAtMSB9LAotICAgIHsgNzEsIC0xIH0sCi0gICAgeyA3MiwgLTEgfSwKLSAgICB7
IDczLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAxNywgLTEgfSwKKyAgICB7IDIzLCAy
NTkgfSwKKyAgICB7IDI2LCAyNjUgfSwKKyAgICB7IDI5LCAyNjIgfSwKKyAgICB7IDMzLCAtMSB9
LAorICAgIHsgNDAsIC0xIH0sCisgICAgeyA0MiwgLTEgfSwKKyAgICB7IDQ0LCAtMSB9LAorICAg
IHsgNTEsIC0xIH0sCisgICAgeyA1NiwgLTEgfSwKKyAgICB7IDYyLCAtMSB9LAorICAgIHsgNjYs
IC0xIH0sCiB9OwogCiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWxP
YmplY3RJbnN0YW5jZVRhYmxlVmFsdWVzW10gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlVmFsdWVzW10gPQogewogICAgIHsgInJlZ3VsYXJBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRl
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X3JlZ3VsYXJBdHRyaWJ1dGUpIH0gfSwKICAgICB7ICJwdWJs
aWNBbmRQcml2YXRlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3Rf
cHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQ
cml2YXRlQXR0cmlidXRlKSB9IH0sCkBAIC02NzIsMTEyICs1MjQsMTM2IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZVRhYmxlVmFsdWVzW10g
PQogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0j
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZV9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSB9IH0sCi0jZWxzZQotICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSAgICB7ICJUZXN0Q0VSZWFj
dGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdENhbGxUcmFjZXIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAorICAg
IHsgIlRlc3RDRVJlYWN0aW9ucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0Q2FsbFRyYWNlciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5B
QkxFKFRFU1RfQ09ORElUSU9OQUwpCi0gICAgeyAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCisgICAgeyAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7
ICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxw
dHIpIH0gfSwKLSAgICB7ICJUZXN0RE9NSklUIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdERPTUpJVENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RE
ZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAot
ICAgIHsgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAg
IHsgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0g
fSwKLSAgICB7ICJUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmli
dXRlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdERvbWFpblNlY3VyaXR5Iiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9
LAotICAgIHsgIlRlc3RFdmVudFRhcmdldCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3RFeGNlcHRp
b24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RXhjZXB0aW9uQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3RDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51
bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCi0gICAgeyAiVGVzdEdsb2JhbE9iamVjdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAg
eyAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51
bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3RJdGVyYWJsZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikg
fSB9LAotICAgIHsgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9
LAotICAgIHsgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0s
Ci0gICAgeyAiQXVkaW8iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9BdWRpb0NvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0TWFwTGlrZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0
cikgfSB9LAotICAgIHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAg
ICB7ICJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIp
IH0gfSwKLSAgICB7ICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRp
ZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgIlRlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAi
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikg
fSB9LAotICAgIHsgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxs
cHRyKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdEludGVyZmFjZU5hbWUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVs
bHB0cikgfSB9LAorICAgIHsgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RET01KSVQiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0RE9NSklUQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdERlZmF1
bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisg
ICAgeyAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9U
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRl
c3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGVDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKKyAgICB7ICJUZXN0RG9tYWluU2VjdXJpdHkiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0
RXZlbnRDb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdEV2ZW50VGFyZ2V0Iiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CisgICAgeyAiVGVzdEV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RF
eGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0R2VuZXJhdGVBZGRPcGFxdWVS
b290Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9v
dENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKKyAgICB7ICJUZXN0R2xvYmFsT2JqZWN0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CisgICAgeyAiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCisgICAgeyAiVGVzdEl0ZXJhYmxlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dEl0ZXJhYmxlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKKyAgICB7ICJBdWRpbyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X0F1
ZGlvQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RNYXBMaWtlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE1hcExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAg
eyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0g
fSwKKyAgICB7ICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAorICAgIHsgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAorICAgIHsgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCisgICAgeyAiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCisgICAgeyAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsg
IlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0SW50ZXJmYWNlTmFtZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
aWYgRU5BQkxFKENvbmRpdGlvbkRlcml2ZWQpCi0gICAgeyAiVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCisgICAgeyAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9
IH0sCiAjZW5kaWYKLSAgICB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdFBsdWdpbklu
dGVyZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RQbHVnaW5JbnRlcmZhY2VD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0UmVhZE9ubHlNYXBMaWtlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVs
bHB0cikgfSB9LAotICAgIHsgIlRlc3RSZWFkT25seVNldExpa2UiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0g
ICAgeyAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAg
ICB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdFBsdWdpbkludGVyZmFjZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAg
ICB7ICJUZXN0UmVhZE9ubHlNYXBMaWtlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RSZWFkT25seVNl
dExpa2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlTZXRMaWtlQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi0g
ICAgeyAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KG51bGxwdHIpIH0gfSwKKyAgICB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2lj
LCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAiVGVzdFNldExpa2UiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsg
IlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51
bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0U3RyaW5naWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIp
IH0gfSwKLSAgICB7ICJUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihu
dWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9
LAotICAgIHsgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0VHlwZWRlZnMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0VHlwZWRlZnNDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0g
fSwKKyAgICB7ICJUZXN0U2V0TGlrZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RT
ZXRMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RTdHJpbmdp
ZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllckNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAorICAgIHsgIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9U
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisg
ICAgeyAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSB9LAorICAgIHsgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RUeXBlZGVmcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgInJlZ3VsYXJPcGVy
YXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fcmVndWxhck9wZXJhdGlv
biksIChpbnRwdHJfdCkgKDEpIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNU
ZXN0R2xvYmFsT2JqZWN0VGFibGUgPSB7IDY4LCAyNTUsIHRydWUsIEpTVGVzdEdsb2JhbE9iamVj
dDo6aW5mbygpLCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZVZhbHVlcywgSlNUZXN0R2xvYmFsT2Jq
ZWN0VGFibGVJbmRleCB9OworLyogSGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KKworc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFi
bGVWYWx1ZXNbXSA9Cit7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVk
QXRSdW50aW1lT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZV9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKSB9IH0sCi0jZWxzZQotICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSAgICB7ICJlbmFibGVkSW5T
cGVjaWZpY1dvcmxkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
X2VuYWJsZWRJblNwZWNpZmljV29ybGQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVBy
b3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkKSB9IH0sCi0gICAgeyAiZW5hYmxlZEluU3BlY2lmaWNX
b3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VfZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVy
ZUVuYWJsZWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENh
bGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkSW5TcGVj
aWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCkgfSB9LAotICAgIHsgImVuYWJsZWRJ
blNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVh
dGVKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1
bnRpbWVGZWF0dXJlc0VuYWJsZWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3Bl
cnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9l
bmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpIH0gfSwKLSNp
ZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIHsgInRlc3RKU0J1aWx0aW5GdW5jdGlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxi
YWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNh
bGxiYWNrPihjcmVhdGVKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV90ZXN0SlNCdWlsdGluRnVu
Y3Rpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxi
YWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV90ZXN0SlNCdWlsdGluRnVu
Y3Rpb24pIH0gfSwKLSNlbHNlCi0gICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwK
LSNlbmRpZgotICAgIHsgImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9jYWxjdWxhdGVTZWNyZXRSZXN1bHQpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRK
U1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZV9jYWxjdWxhdGVTZWNyZXRSZXN1bHQpIH0gfSwKLSAg
ICB7ICJnZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlX2dldFNlY3JldEJvb2xlYW4pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6
eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZV9nZXRTZWNyZXRCb29sZWFuKSB9IH0sCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAg
ICB7ICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VfdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVk
SlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VfdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKSB9
IH0sCisgICAgeyAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0R2xvYmFs
T2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGlj
KSwgKGludHB0cl90KSAoMSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7
IDAsIDAgfSB9LAogI2VuZGlmCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlVGFibGUgPSB7IDc3LCAyNTUsIHRydWUsIEpTVGVzdEdsb2JhbE9i
amVjdDo6aW5mbygpLCBKU1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZVRhYmxlVmFsdWVzLCBKU1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIlRlc3RHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RHbG9iYWxPYmplY3QpIH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RHbG9iYWxPYmplY3RET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEds
b2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0R2xvYmFsT2JqZWN0RE9NQ29uc3RydWN0b3IpIH07CisKK3RlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9y
U3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5m
dW5jdGlvblByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0R2xvYmFsT2Jq
ZWN0RE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LmdldFByb3RvdHlwZURpcmVjdCh2bSksIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwg
IlRlc3RHbG9iYWxPYmplY3QiX3MpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHJl
aWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2xvYmFsT2JqZWN0OjppbmZvKCksIEpTVGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKK30KKworLyogSGFz
aCB0YWJsZSBmb3IgcHJvdG90eXBlICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RQcm90b3R5cGVUYWJsZUluZGV4WzJdID0geworICAg
IHsgLTEsIC0xIH0sCisgICAgeyAwLCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Cit7Cisg
ICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RHbG9iYWxPYmplY3RQ
cm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0R2xvYmFsT2JqZWN0OjppbmZvKCks
IEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RHbG9iYWxPYmpl
Y3RQcm90b3R5cGVUYWJsZUluZGV4IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0R2xvYmFsT2Jq
ZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0R2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5m
bywgJkpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZSkgfTsKKwordm9pZCBKU1Rlc3RH
bG9iYWxPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFO
U0lUSU9OKCk7Cit9CisKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RHbG9iYWxPYmplY3Q6OnNfaW5m
byA9IHsgIlRlc3RHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0R2xvYmFsT2Jq
ZWN0VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2xvYmFsT2JqZWN0
KSB9OwogCiBKU1Rlc3RHbG9iYWxPYmplY3Q6OkpTVGVzdEdsb2JhbE9iamVjdChTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RHbG9i
YWxPYmplY3Q+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcjxUZXN0R2xvYmFsT2JqZWN0Pihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkKQEAgLTc5MywxMSArNjY5LDQx
IEBAIHZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKICNp
ZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3Qo
dm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5O
YW1lcygpLnRlc3RQcml2YXRlRnVuY3Rpb25Qcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMtPmdsb2JhbE9iamVjdCgpLCAwLCAidGVzdFByaXZhdGVGdW5jdGlvbiJfcywg
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0aW9uKSk7
CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xp
ZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5lbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNU
ZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVy
ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IpKSk7CisjZW5kaWYKKyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVi
bGljQW5kUHJpdmF0ZUF0dHJpYnV0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSwg
bnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKKyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRl
Q29uZGl0aW9uYWxBdHRyaWJ1dGUsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSkpOworI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJs
ZWQoKSkKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIHN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLmVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb25QdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiwgTm9JbnRyaW5zaWMsIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
KyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVh
dHVyZUVuYWJsZWQoKSkKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMs
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1l
cygpLmVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNQdWJsaWNOYW1lKCksIDEsIGpzVGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlv
blN0YXRpYywgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworI2VuZGlmCisg
ICAgaWYgKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dvcmxkKCkpCisgICAgICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50
RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5lbmFibGVkSW5TcGVjaWZpY1dv
cmxkUHVibGljTmFtZSgpLCAxLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2Vu
YWJsZWRJblNwZWNpZmljV29ybGQsIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikp
KTsKKyAgICBpZiAoKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dvcmxkKCkgJiYg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJs
ZWQoKSkpCisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5lbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZFB1YmxpY05hbWUoKSwg
MSwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5TcGVjaWZpY1dv
cmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JT
dHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSkpOworICAgIGlmICgod29ybGRGb3JET01PYmplY3QoKnRoaXMpLnNwZWNpZmljV29y
bGQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0
dXJlRW5hYmxlZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
dGVzdEZlYXR1cmUxRW5hYmxlZCgpKSkKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24o
dm0sIHRoaXMsIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1
aWx0aW5OYW1lcygpLmVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5h
YmxlZFB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9l
bmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQsIE5vSW50cmlu
c2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQor
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0
dXJlRW5hYmxlZCgpKQorICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywg
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVz
KCkudGVzdFByaXZhdGVGdW5jdGlvblByaXZhdGVOYW1lKCksIDAsIGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25fdGVzdFByaXZhdGVGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSkpOworI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVy
ZUVuYWJsZWQoKSkKKyAgICAgICAgcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCB0aGlzLCBz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMo
KS50ZXN0SlNCdWlsdGluRnVuY3Rpb25QdWJsaWNOYW1lKCksIHRlc3RHbG9iYWxPYmplY3RUZXN0
SlNCdWlsdGluRnVuY3Rpb25Db2RlR2VuZXJhdG9yKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVy
ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6QnVpbHRpbikp
KTsKICNlbmRpZgotICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxK
U1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5wdWJsaWNBbmRQ
cml2YXRlQXR0cmlidXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sIGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlLCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpOworICAgIGlm
IChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpCisgICAgICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpLT5idWlsdGluTmFtZXMoKS5jYWxjdWxhdGVTZWNyZXRSZXN1bHRQdWJsaWNOYW1lKCks
IDAsIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fY2FsY3VsYXRlU2VjcmV0UmVz
dWx0LCBOb0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CisgICAgaWYgKGpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b24odm0sIHRoaXMsIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSkt
PmJ1aWx0aW5OYW1lcygpLmdldFNlY3JldEJvb2xlYW5QdWJsaWNOYW1lKCksIDAsIGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbiwgTm9JbnRyaW5zaWMs
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAg
cHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25h
bEF0dHJpYnV0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBq
c1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlLCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRl
KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yKSk7CisgICAgaWYgKChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQo
KSkpCisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2Fz
dDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS50ZXN0RmVh
dHVyZUdldFNlY3JldEJvb2xlYW5QdWJsaWNOYW1lKCksIDAsIGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCBOb0ludHJpbnNpYywg
YXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDhhYmIwYmViMGI0Y2JmNTFk
ODhkNzZmNTdjZDE3YThmZTk3NDgxOGIuLjFiNTY2NDcwNTliMjI2MzhjOThmMDgwN2RlOGZkNjM2
NTMxYjc5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllci5jcHAKQEAgLTc5LDE0ICs3OSwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlLCBKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGU8SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcj47CiAKLXRlbXBs
YXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNv
bnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+
IEpTVmFsdWUgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpw
cm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCkBAIC0xMDIsMjEgKzk5LDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9w
ZXJ0CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0K
LXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
clByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQ
cm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllcjo6aW5mbygpLCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFi
bGVWYWx1ZXMsIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllclBy
b3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFz
ZTo6c19pbmZvLCAmSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxl
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAppbmRleCAyMjQ2NWIxMTQ4NGE5NzAwMjVlODc2MTJmNjgzN2Q0ZjUw
YTgwODcxLi5kODU0N2RlNjFjODJmZjg2ZjA5ZDUzZGU4Mzg5MDhjNzcwNGQxNGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNw
cApAQCAtNzksMTQgKzc5LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpT
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSwgSlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAg
LTEwMiwyMSArOTksMTQgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHIKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwog
fQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblBy
b3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0s
Ci19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXN0
YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
UHJvdG90eXBlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbjo6aW5mbygpLCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Q
cm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUpIH07Citj
b25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwCmluZGV4IDAxMTJjMmI0ZmRlODlhODAyM2U0ZDU1NWFjMDJlMzRjYTA2N2RhYjMu
LjBjMTJhNTg1MDI0NzFiOTg4YzYxY2VhMDk0ZGQ1YjZiNWJiY2NmZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC04NywxNCAr
ODcsMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlLCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj47CiAKLXRlbXBsYXRlPD4gY29uc3Qg
dW5zaWduZWQgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6
OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQpAQCAtMTEwLDE1ICsxMDcsNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9w
ZQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1z
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IDEsIC0xIH0sCi0g
ICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLX07Ci0KKy8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CkBAIC0xMjYsOCArMTE1LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlVmFsdWUKICAgICB7
ICJpbmRleGVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyKSwgKGludHB0cl90KSAoMikgfSB9LAogfTsKIAotc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjppbmZvKCksIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRh
YmxlVmFsdWVzLCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJs
ZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
IiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXgg
NDdlOWNhMzY3YjAxMDQ5ZmRmZTdhY2JkNGU0ODAzZDcwMTMyM2QzMS4uZDhkZjgzNGRiZjdmZDMx
ZGJhNzQzZmM0YmRmNTQyMzEyNDVkNjFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTE5
NCwxMDkgKzE5NCw1NyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGUsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6QmFzZSk7CiAKIHVz
aW5nIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3RvcjxKU1Rl
c3RJbnRlcmZhY2U+OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExf
QVRUUklCVVRFUyBKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsK
LSAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIGNhc3RlZFRoaXMgPSBq
c0Nhc3Q8SlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IqPihjYWxsRnJhbWUtPmpzQ2FsbGVl
KCkpOwotICAgIEFTU0VSVChjYXN0ZWRUaGlzKTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1l
LT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgYXV0byogY29udGV4dCA9IGNhc3RlZFRoaXMt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNvbnRleHQpKQot
ICAgICAgICByZXR1cm4gdGhyb3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2
YWlsYWJsZUVycm9yKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCAiVGVzdEludGVy
ZmFjZSIpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUt
PnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8gc3RyMSA9IGNvbnZlcnQ8SURMRE9NU3Ry
aW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgRW5zdXJl
U3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7Ci0gICAg
YXV0byBzdHIyID0gYXJndW1lbnQxLnZhbHVlKCkuaXNVbmRlZmluZWQoKSA/ICJkZWZhdWx0U3Ry
aW5nIl9zIDogY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1
bWVudDEudmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLSAgICBhdXRvIG9iamVjdCA9IFRlc3RJbnRlcmZhY2U6OmNyZWF0ZSgq
Y29udGV4dCwgV1RGTW92ZShzdHIxKSwgV1RGTW92ZShzdHIyKSk7Ci0gICAgc3RhdGljX2Fzc2Vy
dChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRlY2x0eXBlKG9iamVjdCk+Ojppc1Jl
Zik7Ci0gICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8VGVz
dEludGVyZmFjZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7Ci0gICAgaWYgY29uc3RleHByIChJ
c0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQotICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIHsgfSk7Ci0gICAgc2V0U3ViY2xhc3NTdHJ1Y3R1cmVJZk5lZWRlZDxU
ZXN0SW50ZXJmYWNlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFzT2JqZWN0KGpz
VmFsdWUpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKLX0KLUpTQ19BTk5PVEFURV9IT1NUX0ZV
TkNUSU9OKEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RJbnRl
cmZhY2VET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKLQotLyogSGFzaCB0YWJsZSBmb3IgQ29u
c3RydWN0b3IgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVJbmRleFsxN10gPSB7Ci0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDAsIDE2IH0sCi0gICAgeyAxLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDUsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDYsIC0x
IH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgMywgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUg
Zm9yIGNvbnN0cnVjdG9yICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogewotI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRhbFN0YXRpY1Jl
YWRPbmx5QXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAorI2lm
IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAgIHsgIk1JWElO
X0NPTlNUQU5UIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3Rh
bnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0sCiAjZWxzZQogICAg
IHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBwbGVtZW50YWxTdGF0
aWNBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcl9zdXBwbGVt
ZW50YWxTdGF0aWNBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFs
U3RhdGljQXR0cikgfSB9LAorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQorICAgIHsgIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsg
KGxvbmcgbG9uZykoMikgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAs
IDAgfSB9LAogI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFsTWV0aG9kNCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2Q0KSwgKGludHB0cl90KSAoMCkgfSB9LAor
I2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAgIHsgIlBB
UlRJQUxfTUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBs
b25nKSg1KSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0s
CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
LSAgICB7ICJNSVhJTl9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9
LAorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorICAgIHsg
IlNVUFBMRU1FTlRBTENPTlNUQU5UMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0j
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAiTUlY
SU5fUkVGTEVDVEVEX0NPTlNUQU5UIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0s
CisjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisgICAgeyAi
U1VQUExFTUVOVEFMQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0
ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0s
CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJQQVJU
SUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9u
ZykoNSkgfSB9LAorI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQorICAgIHsgInN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAiU1VQ
UExFTUVOVEFMQ09OU1RBTlQxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0sCisg
ICAgeyAic3VwcGxlbWVudGFsU3RhdGljQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigwKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcl9zdXBwbGVtZW50YWxTdGF0aWNBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljQXR0cikgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAiU1VQ
UExFTUVOVEFMQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCisg
ICAgeyAic3VwcGxlbWVudGFsTWV0aG9kNCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5j
dGlvbl9zdXBwbGVtZW50YWxNZXRob2Q0KSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAg
ICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiB9OwogCi1zdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUgPSB7IDgsIDE1
LCB0cnVlLCBudWxscHRyLCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCBK
U1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlSW5kZXggfTsKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKIHN0YXRpY19hc3NlcnQoVGVzdEludGVyZmFj
ZTo6TUlYSU5fQ09OU1RBTlQgPT0gMSwgIk1JWElOX0NPTlNUQU5UIGluIFRlc3RJbnRlcmZhY2Ug
ZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKICNlbmRpZgpAQCAtMzEzLDggKzI2MSwz
NSBAQCBzdGF0aWNfYXNzZXJ0KFRlc3RTdXBwbGVtZW50YWw6OlNVUFBMRU1FTlRBTENPTlNUQU5U
MSA9PSAxLCAiU1VQUExFTUVOVEFMQ09OU1RBTgogc3RhdGljX2Fzc2VydChUZXN0U3VwcGxlbWVu
dGFsOjpDT05TVF9JTVBMID09IDIsICJDT05TVF9JTVBMIGluIFRlc3RTdXBwbGVtZW50YWwgZG9l
cyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKICNlbmRpZgogCi10ZW1wbGF0ZTw+IGNvbnN0
IHVuc2lnbmVkIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3JUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRl
cmZhY2VET01Db25zdHJ1Y3RvcikgfTsKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpjb25zdHJ1
Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQoreworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byogY2FzdGVk
VGhpcyA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcio+KGNhbGxGcmFtZS0+
anNDYWxsZWUoKSk7CisgICAgQVNTRVJUKGNhc3RlZFRoaXMpOworICAgIGlmIChVTkxJS0VMWShj
YWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gY2Fz
dGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmIChVTkxJS0VMWSghY29u
dGV4dCkpCisgICAgICAgIHJldHVybiB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dFVuYXZhaWxhYmxlRXJyb3IoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsICJU
ZXN0SW50ZXJmYWNlIik7CisgICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CisgICAgYXV0byBzdHIxID0gY29udmVydDxJ
RExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAg
ICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQxID0gY2FsbEZyYW1lLT5hcmd1bWVudCgx
KTsKKyAgICBhdXRvIHN0cjIgPSBhcmd1bWVudDEudmFsdWUoKS5pc1VuZGVmaW5lZCgpID8gImRl
ZmF1bHRTdHJpbmciX3MgOiBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGFyZ3VtZW50MS52YWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGF1dG8gb2JqZWN0ID0gVGVzdEludGVyZmFjZTo6
Y3JlYXRlKCpjb250ZXh0LCBXVEZNb3ZlKHN0cjEpLCBXVEZNb3ZlKHN0cjIpKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KFR5cGVPckV4Y2VwdGlvbk9yVW5kZXJseWluZ1R5cGU8ZGVjbHR5cGUob2JqZWN0
KT46OmlzUmVmKTsKKyAgICBhdXRvIGpzVmFsdWUgPSB0b0pTTmV3bHlDcmVhdGVkPElETEludGVy
ZmFjZTxUZXN0SW50ZXJmYWNlPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKTsKKyAgICBpZiBjb25z
dGV4cHIgKElzRXhjZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCisgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICBzZXRTdWJjbGFzc1N0cnVjdHVyZUlm
TmVlZGVkPFRlc3RJbnRlcmZhY2U+KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXNP
YmplY3QoanNWYWx1ZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOworfQorSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04oSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpT
VGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOworCit0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
VGVzdEludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogewpAQCAtMzI3LDE0OSArMzAyLDYxIEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RJbnRlcmZh
Y2VET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEludGVyZmFj
ZTo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJUZXN0SW50ZXJmYWNlIl9zKSwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDEpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIG51
bGxwdHIsIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKKyAg
ICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEludGVyZmFjZTo6aW5mbygpLCBKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLSNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBKU1ZhbHVlIGNy
ZWF0ZUpTVGVzdEludGVyZmFjZVByb3RvdHlwZV9taXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVy
YXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwgIm1peGluU2V0
dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiJfcywganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKTsKLX0KLQotc3RhdGljIGJv
b2wgaXNFbmFibGVkSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlX21peGluU2V0dGluZ3NDb25kaXRp
b25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdzVmFs
dWVzKCkudGVzdFNldHRpbmdFbmFibGVkOwotfQotI2VuZGlmCi0KLS8qIEhhc2ggdGFibGUgZm9y
IFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGVJbmRleFs3MV0gPSB7Ci0gICAgeyAyNSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgNjQgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MjcsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyOSwgLTEgfSwKLSAg
ICB7IDgsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAzMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNywgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCA2NSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAwLCA2OSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyMCwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgOSwgLTEgfSwKLSAgICB7IDEyLCAtMSB9LAotICAgIHsgMjQsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjIsIC0xIH0sCi0gICAg
eyAxMywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjgsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IDEwLCAtMSB9LAotICAgIHsgNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MTUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4LCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTQsIDY4IH0sCi0gICAgeyAx
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDMwLCAtMSB9LAotICAgIHsgMTYsIC0xIH0sCi0gICAgeyA1LCA2NiB9LAotICAg
IHsgNiwgNzAgfSwKLSAgICB7IDE3LCA2NyB9LAotICAgIHsgMTksIC0xIH0sCi0gICAgeyAyMSwg
LTEgfSwKLSAgICB7IDIzLCAtMSB9LAotICAgIHsgMjYsIC0xIH0sCi19OwotCisvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9y
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJtaXhpblJlYWRPbmx5
QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VfbWl4aW5SZWFkT25seUF0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KG51bGxwdHIpIH0gfSwKKyAgICB7ICJtaXhpblJlYWRPbmx5QXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9taXhpblJlYWRPbmx5QXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0g
ICAgeyAibWl4aW5BdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RJbnRlcmZhY2VfbWl4aW5BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VfbWl4aW5BdHRyaWJ1
dGUpIH0gfSwKKyAgICB7ICJtaXhpbkF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlX21peGluQXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0SW50ZXJmYWNlX21peGluQXR0cmlidXRlKSB9IH0sCiAjZWxzZQogICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJtaXhpbkN1c3RvbUF0dHJpYnV0
ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9taXhpbkN1
c3RvbUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZV9taXhpbkN1c3RvbUF0dHJpYnV0ZSkgfSB9
LAorICAgIHsgIm1peGluQ3VzdG9tQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VfbWl4aW5DdXN0b21B
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VfbWl4aW5DdXN0b21BdHRyaWJ1dGUpIH0gfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVO
QUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluTm9k
ZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFj
ZV9taXhpbk5vZGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VfbWl4aW5Ob2RlQXR0cmlidXRl
KSB9IH0sCisgICAgeyAibWl4aW5Ob2RlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VfbWl4aW5Ob2Rl
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlX21peGluTm9kZUF0dHJpYnV0ZSkgfSB9LAogI2Vs
c2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAicGFydGlhbE1p
eGluQXR0cmlidXRlRnJvbVBhcnRpYWwiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9wYXJ0aWFs
TWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJwYXJ0aWFsTWl4
aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RJbnRlcmZhY2VfcGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBwbGVt
ZW50YWxTdHIxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxw
dHIpIH0gfSwKKyAgICB7ICJzdXBwbGVtZW50YWxTdHIxIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIxKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UK
ICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFs
U3RyMiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9zdXBw
bGVtZW50YWxTdHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlX3N1cHBsZW1lbnRhbFN0cjIpIH0gfSwKKyAg
ICB7ICJzdXBwbGVtZW50YWxTdHIyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMiksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIyKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwg
Tm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBwbGVtZW50YWxTdHIzIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlX3N1cHBsZW1lbnRhbFN0cjMp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMykgfSB9LAorICAgIHsgInN1cHBsZW1l
bnRhbFN0cjMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIzKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNl
X3N1cHBsZW1lbnRhbFN0cjMpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywg
eyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRhbE5vZGUiLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsTm9kZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVy
ZmFjZV9zdXBwbGVtZW50YWxOb2RlKSB9IH0sCisgICAgeyAic3VwcGxlbWVudGFsTm9kZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
SW50ZXJmYWNlX3N1cHBsZW1lbnRhbE5vZGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFs
Tm9kZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0g
ICAgeyAicmVmbGVjdEF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEludGVyZmFjZV9yZWZsZWN0QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlX3JlZmxlY3RB
dHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJyZWZsZWN0QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VfcmVm
bGVjdEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZV9yZWZsZWN0QXR0cmlidXRlKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKQEAgLTQ5
OSw3ICszODYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAw
IH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotICAgIHsgIm1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNr
PihjcmVhdGVKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVfbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFs
T3BlcmF0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRD
YWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlX21peGluU2V0dGluZ3ND
b25kaXRpb25hbE9wZXJhdGlvbikgfSB9LAorICAgIHsgIm1peGluU2V0dGluZ3NDb25kaXRpb25h
bE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0aW5n
c0NvbmRpdGlvbmFsT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7
IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCkBAIC01MzgsNDIgKzQyNSw1
MSBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CiAgICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiZm9yRWFjaCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0g
fSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7
ICJNSVhJTl9DT05TVEFOVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAorICAg
IHsgIk1JWElOX0NPTlNUQU5UIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJNSVhJTl9S
RUZMRUNURURfQ09OU1RBTlQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDIpIH0gfSwKKyAg
ICB7ICJNSVhJTl9SRUZMRUNURURfQ09OU1RBTlQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcp
KDIpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAg
IHsgIlBBUlRJQUxfTUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAo
bG9uZyBsb25nKSg1KSB9IH0sCisgICAgeyAiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BB
UlRJQUwiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudElu
dGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDUpIH0gfSwKICNlbHNlCiAgICAgeyAw
LCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgIlNVUFBMRU1FTlRBTENPTlNUQU5U
MSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdl
ciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAorICAgIHsgIlNVUFBMRU1FTlRB
TENPTlNUQU5UMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0
YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAogI2Vsc2UKICAg
ICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAiU1VQUExFTUVOVEFMQ09O
U1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJ
bnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCisgICAgeyAiU1VQUExF
TUVOVEFMQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCiAjZWxz
ZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKIH07CiAKLXN0
YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGUgPSB7IDMy
LCA2MywgdHJ1ZSwgSlNUZXN0SW50ZXJmYWNlOjppbmZvKCksIEpTVGVzdEludGVyZmFjZVByb3Rv
dHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1j
b25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxl
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSkg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RJ
bnRlcmZhY2U6OmluZm8oKSwgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0
aGlzKTsKLSAgICBhdXRvJiBlbnRyaWVzID0gdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZW50cmllc1B1YmxpY05hbWUoKTsKLSAgICByZWlmeVN0YXRpY1Byb3BlcnR5KHZtLCBudWxs
cHRyLCBlbnRyaWVzLCAqaW5mbygpLT5zdGF0aWNQcm9wSGFzaFRhYmxlLT5lbnRyeShlbnRyaWVz
KSwgKnRoaXMpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZtLCBlbnRyaWVzKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgYm9v
bCBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gZmFsc2U7CisjaWYgRU5BQkxFKENvbmRp
dGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0
dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJt
aXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24iKSwgc3RybGVuKCJtaXhpblNldHRpbmdz
Q29uZGl0aW9uYWxPcGVyYXRpb24iKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICB9CisjZW5kaWYKKyAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiBz
dHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2Jq
ZWN0KHZtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3lt
Ym9sLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJp
ZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJ
T04oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZS5jcHAKaW5kZXggYjc1NmM0OTRjNjBlMDNjZmQwYWNlYWIyZWNhYjFiOTdlZDg2NDc1Ny4u
MTNlY2FlZDc1ZTI0NWE4MGI5N2U1MmFjZjU1NjUwZDIwZDA1NWU1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCkBAIC04MCwxNCArODAs
MTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9
OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmVQcm90b3R5cGUsIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
UHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25l
ZCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQpAQCAtMTAzLDI0ICsxMDAsMTUgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEludGVyZmFjZUxl
YWRpbmdVbmRlcnNjb3JlRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXIKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
UHJvdG90eXBlVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAwLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7
ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJyZWFkb25seSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVfcmVhZG9ubHkpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCisgICAgeyAicmVhZG9u
bHkiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVfcmVhZG9ubHkpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxl
IEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlVGFibGUgPSB7IDIsIDMs
IHRydWUsIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjppbmZvKCksIEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSkg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXggZmJlMTgxZmFiNTI5OTA2YzdjYTUxZDk3YmRmNjM4ODY5
OWVkN2I2NS4uNzAwZWM5OTRiY2I1ZjU4NGZlYTBmN2VjYzEwMGVmYzMyODM3YjM0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SXRlcmFibGUuY3BwCkBAIC04OSwxNCArODksMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBK
U0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoSlNUZXN0SXRlcmFibGVQcm90b3R5cGUsIEpTVGVzdEl0ZXJhYmxlUHJvdG90
eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3RvciA9IEpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEl0ZXJhYmxlPjsKIAotdGVtcGxhdGU8
PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RJdGVyYWJsZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEl0ZXJhYmxlIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RJdGVyYWJsZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
SXRlcmFibGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTEyLDI4ICsxMDks
NyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlh
bGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2gg
dGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUZXN0SXRlcmFibGVQcm90b3R5cGVUYWJsZUluZGV4WzE3XSA9IHsKLSAgICB7IDMs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIDE2IH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAtMSB9LAotfTsKLQorLyog
SGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewpAQCAtMTQ0LDE2ICsx
MjAsMTMgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEl0ZXJhYmxlUHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SXRlcmFibGVQcm90b3R5
cGVGdW5jdGlvbl9mb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGljIGNv
bnN0IEhhc2hUYWJsZSBKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZVRhYmxlID0geyA1LCAxNSwgdHJ1
ZSwgSlNUZXN0SXRlcmFibGU6OmluZm8oKSwgSlNUZXN0SXRlcmFibGVQcm90b3R5cGVUYWJsZVZh
bHVlcywgSlNUZXN0SXRlcmFibGVQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0lu
Zm8gSlNUZXN0SXRlcmFibGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RJdGVyYWJsZSIsICZC
YXNlOjpzX2luZm8sICZKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0SXRlcmFibGUiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEl0ZXJhYmxlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0SXRlcmFibGU6OmluZm8oKSwgSlNU
ZXN0SXRlcmFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwotICAgIGF1dG8mIGVudHJp
ZXMgPSB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgp
OwotICAgIHJlaWZ5U3RhdGljUHJvcGVydHkodm0sIG51bGxwdHIsIGVudHJpZXMsICppbmZvKCkt
PnN0YXRpY1Byb3BIYXNoVGFibGUtPmVudHJ5KGVudHJpZXMpLCAqdGhpcyk7Ci0gICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9s
LCBnZXREaXJlY3Qodm0sIGVudHJpZXMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfVE9fU1RSSU5HX1RB
R19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYTgyYWVlMDMyZWFlY2JjOTgyYjMyNzI5NTUxZDljYWQ5YjA4
OGQ3Yi4uZGFlOWIyMGI2MWQwNzQ4NjZiMTVlZTg2MWFjOGM5YzRlNWI5Nzg0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC04MywxNCArODMsMTEgQEAg
cHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RB
VElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JQcm90b3R5cGUsIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlOjpCYXNlKTsK
IAogdXNpbmcgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JET01Db25zdHJ1Y3RvciA9IEpTRE9N
QnVpbHRpbkNvbnN0cnVjdG9yPEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yPjsKIAotdGVtcGxh
dGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVj
dG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JET01Db25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTExLDQy
ICsxMDgsMTkgQEAgdGVtcGxhdGU8PiBGdW5jdGlvbkV4ZWN1dGFibGUqIEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3I6OmluaXRpYWwKICAgICByZXR1cm4gdGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9ySW5pdGlhbGl6ZVRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvZGVHZW5l
cmF0b3Iodm0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
UHJvdG90eXBlVGFibGVJbmRleFsxOF0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDAsIDE3IH0sCi0gICAgeyAxLCAxNiB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IDUsIC0xIH0sCi19OwotCisvKiBIYXNo
IHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAg
eyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9IH0sCiAgICAgeyAidGVzdEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkJ1aWx0aW4pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRp
bkdlbmVyYXRvcj4odGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUNvZGVHZW5l
cmF0b3IpLCAoaW50cHRyX3QpIChzZXRUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmli
dXRlQ29kZUdlbmVyYXRvcikgfSB9LAotICAgIHsgInRlc3RBdHRyaWJ1dGVDdXN0b20iLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yX3Rlc3RBdHRyaWJ1dGVDdXN0b20pLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCi0gICAgeyAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3Vz
dG9tKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKSB9
IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZUN1c3RvbSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcl90ZXN0QXR0cmlidXRlQ3VzdG9tKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSB9LAorICAgIHsgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVz
dEF0dHJpYnV0ZVJXQ3VzdG9tKSB9IH0sCiAgICAgeyAidGVzdEZ1bmN0aW9uIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEZ1bmN0aW9uQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDApIH0g
fSwKICAgICB7ICJ0ZXN0Q3VzdG9tRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
UHJvdG90eXBlRnVuY3Rpb25fdGVzdEN1c3RvbUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9
LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
clByb3RvdHlwZVRhYmxlID0geyA2LCAxNSwgdHJ1ZSwgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3I6OmluZm8oKSwgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZhbHVl
cywgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25z
dCBDbGFzc0luZm8gSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKSB9
OwogCiB2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24u
Y3BwCmluZGV4IGI2ZWJjYzNhYmZiNzdjYWRmNmIyNTAzZDBjMTVlMDVhNDJiYjdiODEuLjNhZGMx
MmZkMmY0YzYwYmVjNmNlN2I2NjA1NzAxMTE1MGExM2ZkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwCkBAIC04MSwxNSArODEsMTIgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uUHJvdG90
eXBlLCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Qcm90b3R5cGU6OkJhc2UpOwogCiB1c2lu
ZyBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25ET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbj47CiB1c2lu
ZyBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb24gPSBKU0RP
TUxlZ2FjeUZhY3RvcnlGdW5jdGlvbjxKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24+OwogCi10
ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkRPTUNv
bnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbkRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNU
ZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
QEAgLTE1MywyMSArMTUwLDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OmluaXRpYWxpemVQcm9wCiAgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Qcm90b3R5
cGVUYWJsZUluZGV4WzJdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotfTsK
LQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Qcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpT
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvblByb3RvdHlwZVRhYmxlID0geyAxLCAxLCB0cnVlLCBK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmluZm8oKSwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvblBy
b3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uUHJvdG90eXBlVGFi
bGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHAKaW5kZXggYjM5ODViYTBm
NGI4N2JhZWM2MDc4M2YzY2MxYjRhNDhkZGI4OGM2MC4uNTMwNjlhNTBlMjc0Y2FhNjM2Zjc0NjA4
MTQzMGRmMzU2MDcxNzUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3QuY3BwCkBAIC05OSw0OCArOTksMjQgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUsIEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlOjpCYXNlKTsKIAotLyogSGFzaCB0YWJsZSBm
b3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZVRhYmxlSW5kZXhbMTddID0gewot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAy
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0s
Ci0gICAgeyA1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3LCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAzLCAxNiB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi19Owot
CisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7Ci0gICAgeyAicmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0X3JlYWRvbmx5U3RyaW5nQXR0cmlidXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9
LAotICAgIHsgInJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X3JlYWRXcml0ZVN0cmluZ0F0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X3JlYWRXcml0ZVN0cmluZ0F0
dHJpYnV0ZSkgfSB9LAotICAgIHsgImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIs
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0X2N1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0X2N1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSkgfSB9LAotICAg
IHsgIm5vZGVBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdF9ub2RlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3Rfbm9kZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgInJlYWRvbmx5U3RyaW5nQXR0
cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0X3JlYWRvbmx5U3RyaW5nQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInJlYWRX
cml0ZVN0cmluZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVhZFdyaXRl
U3RyaW5nQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVhZFdyaXRl
U3RyaW5nQXR0cmlidXRlKSB9IH0sCisgICAgeyAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0
cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9jdXN0b21HZXR0ZXJTZXR0ZXJTdHJp
bmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9jdXN0b21HZXR0ZXJT
ZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJub2RlQXR0cmlidXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdF9ub2RlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Rfbm9kZUF0dHJpYnV0ZSkgfSB9LAogICAgIHsgInZvaWRPcGVyYXRpb24iLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25fdm9pZE9wZXJhdGlvbiks
IChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJjdXN0b21PcGVyYXRpb24iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25fY3VzdG9tT3BlcmF0aW9uKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAotICAgIHsgIkNPTlNUQU5UMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcg
bG9uZykoMSkgfSB9LAotICAgIHsgIkNPTlNUQU5UMiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9u
ZykoMikgfSB9LAorICAgIHsgIkNPTlNUQU5UMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZyko
MSkgfSB9LAorICAgIHsgIkNPTlNUQU5UMiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMikg
fSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZVRhYmxlID0geyA4LCAxNSwgdHJ1ZSwgSlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3Q6OmluZm8oKSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5
cGVUYWJsZVZhbHVlcywgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVUYWJs
ZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIsICZCYXNl
OjpzX2luZm8sICZKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5kZXggYTA1Nzgz
MzA0M2RhYmFkNTQwMGE3MzcyZThhMGYwZGRhZjNkMzVlNC4uODQzMmYxMzViMmZlMmU0YjZjYjIy
YWZlZWNjOWU5MzM4NDIwY2ZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zLmNwcApAQCAtODcsMTQgKzg3LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlND
OjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNF
X1NIQVJBQkxFKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUsIEpTVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjsKIAotdGVtcGxhdGU8PiBj
b25zdCB1bnNpZ25lZCBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6
OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEx
MCwxNSArMTA3LDcgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBD
b21wYWN0SGFzaEluZGV4IEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJs
ZUluZGV4WzRdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CkBAIC0xMjYsOCArMTE1LDcgQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJuYW1lZEl0ZW0iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbl9uYW1lZEl0ZW0pLCAoaW50cHRyX3QpICgxKSB9
IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNQcm90b3R5cGVUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluczo6aW5mbygpLCBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlVGFi
bGVWYWx1ZXMsIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZUluZGV4
IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZVRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dEluc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3Bw
CmluZGV4IGFjNzE4Y2EwMGEwYTg1MWVkMmY3OGQ0ZWEwNWUyMWRlNTRjYjk0M2MuLmI0ODc2ZjM4
OGRmM2YzMTJiNzZmODAwMDU3YzIyZDk5ZTA4MDU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAKQEAg
LTk2LDE0ICs5NiwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RN
YXBMaWtlUHJvdG90eXBlLCBKU1Rlc3RNYXBMaWtlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcg
SlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGU8SlNUZXN0TWFwTGlrZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0
TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yKSB9
OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpwcm90
b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCkBAIC0xMTksNzAgKzExNiwzMCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
TWFwTGlrZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9N
RwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1z
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TWFwTGlrZVByb3RvdHlw
ZVRhYmxlSW5kZXhbMzNdID0gewotICAgIHsgNiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IDEwLCAtMSB9
LAotICAgIHsgMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDcsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIDMyIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDksIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0s
Ci19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdE1hcExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAotICAgIHsgInNpemUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TWFwTGlrZV9zaXplKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAg
IHsgImdldCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dldCks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJoYXMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbl9oYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50
cmllcyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMp
LCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAia2V5cyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAi
dmFsdWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVz
KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RNYXBMaWtlX3NpemUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZ2V0Iiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9n
ZXQpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9oYXMpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcyksIChpbnRw
dHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0cl90KSAoMCkg
fSB9LAogICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JF
YWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgInNldCIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX3NldCksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7
ICJjbGVhciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFy
KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImRlbGV0ZSIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAg
ICB7ICJzZXQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uX3NldCksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJjbGVh
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25fY2xlYXIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZGVsZXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbl9kZWxldGUpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTVGVzdE1hcExpa2VQcm90b3R5cGVUYWJsZSA9IHsgMTEsIDMxLCB0cnVlLCBK
U1Rlc3RNYXBMaWtlOjppbmZvKCksIEpTVGVzdE1hcExpa2VQcm90b3R5cGVUYWJsZVZhbHVlcywg
SlNUZXN0TWFwTGlrZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RNYXBMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2lu
Zm8sICZKU1Rlc3RNYXBMaWtlUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TWFwTGlrZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RN
YXBMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZVByb3Rv
dHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RNYXBMaWtlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgSlNUZXN0TWFwTGlrZTo6aW5mbygpLCBKU1Rlc3RNYXBMaWtlUHJvdG90
eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKLSAgICBhdXRvJiBlbnRyaWVzID0gdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKTsKLSAgICByZWlmeVN0YXRp
Y1Byb3BlcnR5KHZtLCBudWxscHRyLCBlbnRyaWVzLCAqaW5mbygpLT5zdGF0aWNQcm9wSGFzaFRh
YmxlLT5lbnRyeShlbnRyaWVzKSwgKnRoaXMpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZtLCBl
bnRyaWVzKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5
bWJvbCwgZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRy
aWVzUHVibGljTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lU
SU9OKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmNwcAppbmRleCAwNzVmZDhiYWQzMWI2MWQ5MzkxZjViYWI2OTU2MTA5
MDM1MTE3OTU0Li5mMmY2MGU2Mjk2ZTc5ODIwNTJhNjlkZDgwNjRiYmFhMzY1YmQ5MDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnMuY3BwCkBAIC0xMDAsMTQgKzEwMCwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlLCBKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlOjpCYXNlKTsKIAogdXNp
bmcgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yID0g
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucz47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUg
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpwcm90
b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCkBAIC0xMjMsNzAgKzEyMCwzMCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjppbml0aWFsaXpl
UAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1z
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRhYmxlSW5kZXhbMzNdID0gewotICAgIHsgOCwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyA0LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
NSwgLTEgfSwKLSAgICB7IDEwLCAtMSB9LAotICAgIHsgMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDksIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDAsIDMyIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5
cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25z
dHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAotICAgIHsgInNldCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2V0KSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19zZXQpIH0gfSwKLSAgICB7ICJzaXplIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2l6ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwK
KyAgICB7ICJzZXQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2V0KSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19zZXQpIH0gfSwKKyAgICB7ICJzaXpl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc19zaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgImNsZWFyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fY2xlYXIpLCAoaW50cHRyX3QpICgw
KSB9IH0sCi0gICAgeyAiZ2V0IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZ2V0KSwgKGludHB0cl90KSAoMSkgfSB9LAot
ICAgIHsgImhhcyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2hhcyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJl
bnRyaWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJr
ZXlzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25fa2V5cyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ2YWx1ZXMi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZ2V0Iiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9nZXQpLCAoaW50cHRyX3QpICgxKSB9IH0sCisg
ICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXMpLCAoaW50cHRy
X3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlzIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAg
IHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoKSwgKGludHB0cl90KSAoMSkg
fSB9LAotICAgIHsgImRlbGV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSksIChpbnRwdHJfdCkgKDEpIH0g
fSwKKyAgICB7ICJkZWxldGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2RlbGV0
ZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRhYmxlID0geyAxMSwg
MzEsIHRydWUsIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmluZm8oKSwg
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRhYmxlVmFsdWVz
LCBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlVGFibGVJbmRl
eCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsK
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVz
KHZtLCBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjppbmZvKCksIEpTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRo
aXMpOwotICAgIGF1dG8mIGVudHJpZXMgPSB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5lbnRyaWVzUHVibGljTmFtZSgpOwotICAgIHJlaWZ5U3RhdGljUHJvcGVydHkodm0sIG51bGxw
dHIsIGVudHJpZXMsICppbmZvKCktPnN0YXRpY1Byb3BIYXNoVGFibGUtPmVudHJ5KGVudHJpZXMp
LCAqdGhpcyk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIGVudHJpZXMpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
ICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcAppbmRleCA1N2ExMWFhYTU0ZWQ2YjdjZTA3MTVlNTVlMWQxZjM1MGYxODg1YTVmLi4yNTFj
ZTExN2M2OGQwZGViYmI3OWI2YjY2YWI5OTkwZTMyODdiN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAt
ODAsMTQgKzgwLDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSwgSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFs
dWUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6
OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwMywyMSArMTAwLDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6aW5p
dGlhbGl6CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICov
Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJj
b25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxlID0geyAxLCAx
LCB0cnVlLCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmluZm8oKSwg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1
ZXMsIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxl
SW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKSB9OworY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKSB9OwogCiB2b2lk
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggODE4Mzk0MTQ0
MWQ0ZDA5YjM3NGIxMWM5MDNjMjAwYTNjYjdlYzA2YS4uZDNiMTA2ODdhYzI3Y2YyYjY4OGJiMjRk
NWI4NWU4ODcyNzg5MWZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC04MCwxNCArODAs
MTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
KTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9
OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUsIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvciA9IEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0
cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAt
MTAzLDIxICsxMDAsMTQgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OmluaXQKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwog
fQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwg
dHJ1ZSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmluZm8o
KSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVU
YWJsZVZhbHVlcywgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Q
cm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sICZKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBkYjg4ZmE5MGZmYTE0MTA4YzFh
YWMzNmFkYTJkOWQxMDU0YzRhOGVlLi5hZTZiMTA0ZTViNTM3MzJiY2ZiNGVmNGMwMjNkMDU3Y2Q2
YTc3NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTg5LDE0ICs4OSwxMSBAQCBwcml2YXRlOgog
ICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJU
X0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGU8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OwogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0xMTIsMjAgKzEwOSw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjppbml0aWFsCiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlSW5kZXhbOV0gPSB7Ci0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDAsIDggfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAyLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAq
LwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKQEAgLTEzNCw4ICsx
MTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYQogICAgIHsgImluZGV4ZWRTZXR0ZXIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25f
aW5kZXhlZFNldHRlciksIChpbnRwdHJfdCkgKDIpIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBI
YXNoVGFibGUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGVUYWJsZSA9IHsgMywgNywgdHJ1ZSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OmluZm8oKSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sICZK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4
IDViNDM0ZWU3MWFmODc4ODczMjUyOWE2MTdiOTFhNmQ4OTAxNGViMWUuLjEzOTFjODg3ZGZlYjdk
Y2FiNGIzYmViZjM1MDczMzM4NWFiZjEyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC03OSwxNCArNzksMTEgQEAgcHJpdmF0ZToKICAg
ICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlLCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1
c2luZyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
cj47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
ZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTAyLDIxICs5OSwxNCBAQCB0ZW1wbGF0ZTw+IHZv
aWQgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OmluaXRpYWxp
emVQcm9wZXJ0aQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlw
ZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAq
LwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAog
fTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyOjppbmZvKCksIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlwZVRh
YmxlVmFsdWVzLCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6
OnNfaW5mbywgJkpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
clByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCmluZGV4IDJiYmY0NGU3NmFkZmZhMzlkMzMxOGIyZWRkMmNlOTA3MGQ5MTc3NGEuLjA4
MTMxMDFmNGUzNGUxZDNlZWU5NWM1MTk5ZWE3Yzc4MTg0ZGQ3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNzksMTQg
Kzc5LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlLCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvblByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZTxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbj47CiAKLXRlbXBsYXRl
PD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25ET01D
b25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsK
IAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwMiwyMSArOTksMTQgQEAgdGVt
cGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3Ry
dWN0b3I6OmluaXRpYWxpemVQcm8KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZv
ciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlVGFibGVJbmRleFsyXSA9
IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwg
dHJ1ZSwgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OmluZm8oKSwgSlNUZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25z
dCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpz
X2luZm8sICZKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZVRhYmxl
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90
eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA4YTBmMmZhMzBhZDJjZDY1YTgxNzZk
YmM2M2U5ZmIxOTUzZjJhODU3Li4xZWJmZDAzNTIwZmExOTljYjI0NDViY2EyY2E3N2E1NTU4Zjlm
MWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ci5jcHAKQEAgLTg2LDE0ICs4NiwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJM
RShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSwgSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI+OwogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyRE9N
Q29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xMDksMTUgKzEwNiw3IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjppbml0aWFs
aXplUHJvcGVyCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBl
ICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlSW5kZXhbNF0gPSB7Ci0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAxLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi19
OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVW
YWx1ZXNbXSA9CiB7CkBAIC0xMjUsOCArMTE0LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXMK
ICAgICB7ICJuYW1lZERlbGV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJv
dG90eXBlRnVuY3Rpb25fbmFtZWREZWxldGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAot
c3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZVRhYmxlID0geyAyLCAzLCB0cnVlLCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllcjo6aW5mbygpLCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRh
YmxlVmFsdWVzLCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxl
SW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiwg
JkJhc2U6OnNfaW5mbywgJkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUpIH07
CiAKIHZvaWQgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGU4OWUyNWNiNDExZTkyODczYjIxYWRjNjJi
MmI4MDY3MzZkNTdhM2YuLmQwYmEwNDcyNzVkMzRjMjM1NmU5YzhhNDkwNTA2MDAyODAyNjE1NDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyLmNwcApAQCAtODAsMTQgKzgwLDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlLCBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlcj47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJE
T01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEw
MywyMSArMTAwLDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3Rv
dHlwZVRhYmxlSW5kZXhbMl0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi19
OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyOjppbmZvKCksIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBl
VGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBl
VGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRH
ZXR0ZXJQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZTo6c19pbmZvID0g
eyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGguY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCmluZGV4IGYxYmE0M2U4YmIzZTRkNjIy
NzgyZWUzNmM5Zjg5ODEwMzVlZTRkMzIuLmVhMGU1MTNlOGM5NzE5YjIyZjYwZWU3M2VlNzAxYTRh
ZDdhNDE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAg
LTc5LDE0ICs3OSwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RO
YW1lZEdldHRlckNhbGxXaXRoUHJvdG90eXBlLCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoUHJv
dG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aD47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aERPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCkBAIC0xMDIsMjEgKzk5LDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZEdl
dHRlckNhbGxXaXRoRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoUHJv
dG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwK
LX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpT
VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6aW5mbygpLCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
UHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGVU
YWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFBy
b3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGUpIH07
Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQ
cm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllci5jcHAKaW5kZXggM2NmMjMwYWI0YmI3NGZiNDhkNmE4ZjE3YWZkOGVlMDNk
NWI1ZWU4Mi4uYzljZjRlYzhjYjdmMTdjZThhNDQ0YzVhYWY4MGJhYThjNzNkY2IxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC03OSwxNCAr
NzksMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUsIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyUHJv
dG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJET01D
b25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RO
YW1lZEdldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVj
dG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25z
dCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTAyLDIxICs5OSwxNCBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rv
cjo6aW5pdGlhbGl6ZVByb3BlcnRpZQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUg
Zm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0
cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllclByb3RvdHlwZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllcjo6aW5mbygpLCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllclByb3Rv
dHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRh
YmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
clByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgJkJh
c2U6OnNfaW5mbywgJkpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGUs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXJQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRl
eCBhMTFmOWRjZmE4NWZkOWQ4NTAxZTA2ZDg4MTMyNjY5N2I2MWM4ZWRmLi41Y2Q1MjljNDA4OGIz
YWQxOWQ5NWYwMDI1NzFmNmNmNDE0OTAwNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC04NCwxNCArODQsMTEgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZSwgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZTo6QmFzZSk7
CiAKIHVzaW5nIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXI+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rv
cikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25z
dCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTA3LDE1ICsxMDQsNyBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVj
dG9yOjppbml0aWFsaXplUHJvcGVydAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUg
Zm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlSW5kZXhbNF0gPSB7
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAxLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKQEAgLTEyMyw4ICsxMTIsNyBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRh
YmxlVmFsdWVzWwogICAgIHsgImdldHRlck5hbWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9nZXR0ZXJOYW1lKSwgKGludHB0cl90KSAoMSkgfSB9LAog
fTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyUHJvdG90eXBlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXI6OmluZm8oKSwgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZVRhYmxlVmFsdWVzLCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFi
bGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIiwg
JkJhc2U6OnNfaW5mbywgJkpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVU
YWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKSB9OwogCiB2
b2lkIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCmluZGV4IGNkMDhhMTc1NjU2N2Y5YTk5M2U4MDZmNWM1MTMyN2U3OTBhYjQ3NmEuLjUz
ZjE3NDlmMjFiODU4YmYzZjlkZjFjYTM2ODRiNDViOTZiMWU5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNzksMTQgKzc5LDExIEBAIHBy
aXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyUHJvdG90eXBlLCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZTo6QmFz
ZSk7CiAKIHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3Ig
PSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllcj47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKIAog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwMiwyMSArOTksMTQgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OmluaXRpYWxp
emVQcm9wZXJ0aWUKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5
cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAq
LwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07
CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQ
cm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXI6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZh
bHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZUluZGV4IH07
Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8s
ICZKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBl
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggYWVh
OGM1YTBlM2M2MWJjZGZmMTU2OTRlNWQ1NjNkOWI5M2JkMzE0Yy4uMzExMGIxZmYwZjNlNGE2MzA4
ZWViMDQ5NGM0YzY2MGFjMmVhN2Y1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNzksMTQgKzc5LDExIEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Qcm90b3R5cGUsIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGU6
OkJhc2UpOwogCiB1c2luZyBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKQEAgLTEwMiwyMSArOTksMTQgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3AKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Qcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAw
LCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJv
dG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAK
LXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
blByb3RvdHlwZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uOjppbmZvKCksIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90
b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3Rv
dHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvblByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggZDk5ZTVhMDIy
YzY0ODdjMDBiZjdhMjAxNmYwNjdhNGY1YTMzZjI2Ni4uMzIzYmZlYzkzNmMwMTNiMzkxNTY0NTRh
ZTViMzYxMDc2ZDM0M2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyLmNwcApAQCAtODYsMTQgKzg2LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQ
QUNFX1NIQVJBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUsIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyPjsK
IAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwOSwxNiArMTA2LDcgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6aW5pdGlh
bGl6ZVByb3BlcnQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5
cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZUluZGV4WzVdID0gewotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAwLCA0IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewpAQCAtMTI2LDggKzExNCw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlVGFibGVWYWx1ZXNbCiAgICAgeyAibmFtZWRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9uYW1lZFNldHRlciksIChpbnRwdHJfdCkgKDIp
IH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZVRhYmxlID0geyAyLCAzLCB0cnVlLCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyOjppbmZvKCksIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQ
cm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJv
dG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSkg
fTsKIAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggMjg5NGZhZWM1NmRkZmIyZjMyNTI2YWQwNTZj
ZDA4OTRmODlmYjdjZi4uZjA0Yzg0MmU0MGJjZjgzZGI0NTZmZjJlOGYwNTllYzUzNmQ1MTgzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
LmNwcApAQCAtODksMTQgKzg5LDExIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxF
KEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUsIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyPjsK
IAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0
b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTExMiwyMCArMTA5LDcg
QEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJET01D
b25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3AKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRh
YmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVUYWJsZUluZGV4
WzldID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCA4IH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi19OwotCisvKiBIYXNo
IHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
IHsKQEAgLTEzNCw4ICsxMTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZVRhYmxlVmFsdQogICAgIHsgImlu
ZGV4ZWRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVG
dW5jdGlvbl9pbmRleGVkU2V0dGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlVGFibGUgPSB7IDMsIDcsIHRydWUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXI6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZVRh
YmxlVmFsdWVzLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlVGFi
bGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQ
cm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNw
cAppbmRleCA0ODI3ZTcwZGZmMjlmNTAyYWQyNTY1NzJjMDljOWIwMmY0N2Y2ZjQ2Li5kYTA5NzBl
Y2IwZmU0ZWYyYzRmNTM1ZjM3NTZhZmYyYjQ3YjA4ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3Bw
CkBAIC04OSwxNCArODksMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZSwgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZTo6QmFzZSk7CiAK
IHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25z
dHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2ln
bmVkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1
Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJE
T01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQpAQCAtMTEyLDIwICsxMDksNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRPTUNvbnN0cnVjdG9yOjppbml0aQogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlclByb3RvdHlwZVRhYmxlSW5kZXhbOV0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDAsIDggfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewpAQCAtMTM0LDggKzExOCw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlCiAgICAgeyAiaW5kZXhlZFNldHRlciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uX2lu
ZGV4ZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFz
aFRhYmxlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cGVUYWJsZSA9IHsgMywgNywgdHJ1ZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlcjo6aW5mbygpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiLCAmQmFzZTo6
c19pbmZvLCAmSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3Rv
dHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8g
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGUpIH07CiAKIHZvaWQg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCmluZGV4IDY5YTc1YTEx
OGI0NDdhYmRkOWE1Y2RlYjNlYjc0NWU3NDI0NDZhZjQuLjEyZmM5OWQ1ZDIxYWI2ZWY4NDg2YjVi
ZjU2MmY3YjRmZGM2OGViNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKQEAgLTc5LDE0ICs3OSwx
MSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYp
OwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07
CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdElucz47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yKSB9
OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xMDIsMjEgKzk5
LDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OmluaXRpCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFz
aCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90
eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07
Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6aW5mbygpLCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZUluZGV4
IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiYWExNjRjNGQyYTYyNTgwOGE2NWQyNzY0YzEzMTg1
ZTU3YTY1M2Q3Li4zYzNkNjhkMDg1MGU1NzM1N2FmZDk3ODIzZTA1ZDIwMmEzZGIzNTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcApAQCAtODgsMTQgKzg4LDI4IEBAIHByaXZhdGU6
CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzRE9NQ29uc3RydWN0b3IgPSBKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXM+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNvbnN0cnVjdG9y
OjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworLyogSGFzaCB0YWJsZSAq
LworCitzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVGFibGVJbmRleFs0XSA9IHsKKyAgICB7
IC0xLCAtMSB9LAorICAgIHsgMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgMCwgLTEg
fSwKK307CisKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1RhYmxlVmFsdWVzW10gPQoreworICAgIHsg
InVuZm9yZ2VhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNfdW5mb3JnZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisg
ICAgeyAidW5mb3JnZWFibGVPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25fdW5mb3Jn
ZWFibGVPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCit9OworCitzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c1RhYmxlID0geyAyLCAzLCB0cnVlLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXM6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc1RhYmxlSW5kZXggfTsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0xMTEsMjEgKzEyNSwxNCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzRE9NQ29uc3RydWN0b3I6Ogog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0
aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7
CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGljIGNv
bnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjppbmZvKCksIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZVRhYmxlLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZSkgfTsKIAog
dm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzNCwyNCArMTQxLDcgQEAgdm9p
ZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFYKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5T
SVRJT04oKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07
Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAg
eyAidW5mb3JnZWFibGVBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNfdW5mb3JnZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAidW5mb3JnZWFi
bGVPcGVyYXRpb24iLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0
YW5jZUZ1bmN0aW9uX3VuZm9yZ2VhYmxlT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAot
fTsKLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZVRhYmxlID0geyAyLCAzLCB0cnVlLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM6OmluZm8oKSwgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VUYWJsZVZh
bHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5z
dGFuY2VUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlVGFibGUsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllczo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIsICZCYXNlOjpzX2luZm8sICZKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNUYWJsZSwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXMpIH07CiAKIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllczo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcz4m
JiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyPFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXM+KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCmluZGV4IGI4ZDdhNDU0ZGRmMWZmYWY3ODQ0MzAzYTVi
NjUwZDY1NWE0NGUwYWYuLmE3ZjU0MTIwYjQ3NjBjODA4YjkxM2IxNDFjMDc3MDI4MDg5NTJlZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKQEAgLTg4LDE0ICs4OCwyOCBAQCBwcml2YXRlOgog
ICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJU
X0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dElucz47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNv
bnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworLyogSGFz
aCB0YWJsZSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc1RhYmxlSW5kZXhbNF0gPSB7CisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDEsIC0x
IH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDAsIC0xIH0sCit9OworCisKK3N0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVGFibGVWYWx1ZXNbXSA9Cit7CisgICAg
eyAidW5mb3JnZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNfdW5m
b3JnZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAidW5mb3JnZWFibGVPcGVyYXRpb24iLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0aW9uX3VuZm9yZ2VhYmxl
T3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorfTsKKworc3RhdGljIGNvbnN0IEhhc2hU
YWJsZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnM6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1RhYmxlVmFsdWVzLCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
VGFibGVJbmRleCB9OwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0RPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xMTEsMjEgKzEyNSwxNCBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUg
Zm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7Ci0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDAsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
IAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnM6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6
OnNfaW5mbywgJkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKQEAgLTEzNCwyNCArMTQxLDcgQEAgdm9p
ZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zUHIKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5T
SVRJT04oKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZVRhYmxl
SW5kZXhbNF0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDAsIC0xIH0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJ1bmZv
cmdlYWJsZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNfdW5mb3JnZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0s
Ci0gICAgeyAidW5mb3JnZWFibGVPcGVyYXRpb24iLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvbl91
bmZvcmdlYWJsZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKLX07Ci0KLXN0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0luc3RhbmNlVGFibGUgPSB7IDIsIDMsIHRy
dWUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnM6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0luc3RhbmNlVGFi
bGVWYWx1ZXMsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZVRhYmxlSW5kZXggfTsKLWNvbnN0IENs
YXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsICZC
YXNlOjpzX2luZm8sICZKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VUYWJsZSwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKSB9OworY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnM6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5m
bywgJkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zKSB9OwogCiBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpKU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBS
ZWY8VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnM+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBlcjxUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dElucz4oc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNl
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lc3BhY2VPYmplY3QuY3BwCmluZGV4IGViZjZhMjNkZDg2N2NlZDhiZjMzYzU2ZTlmMjlk
YjllZjMwZjk3ZDYuLmQwMjMxMWZmNGFiMzM3N2JmYzI3NGVhNTc1YzBjYWMwNmRkZGJkZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lc3BhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lc3BhY2VPYmplY3QuY3BwCkBAIC03NSw4NiArNzUsMjYgQEAgc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3Ry
dWN0b3JfbmFtZXNwYWNlQXR0cmkKIAogdXNpbmcgSlNUZXN0TmFtZXNwYWNlT2JqZWN0RE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNUZXN0TmFtZXNwYWNlT2Jq
ZWN0PjsKIAotI2lmIEVOQUJMRShDb25kaXRpb24xKQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNU
ZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JfbmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRp
YWwoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIEN1c3RvbUdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBqc1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3Rvcl9uYW1lc3BhY2VBdHRy
aWJ1dGVGcm9tUGFydGlhbCwgbnVsbHB0cik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpT
VGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZUZyb21QYXJ0
aWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGds
b2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0
U2V0dGluZzFFbmFibGVkOwotfQotI2VuZGlmCi0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVz
dE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX2VuYWJsZWRCeVNldHRpbmdOYW1lc3BhY2VPcGVy
YXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgMCwgImVuYWJsZWRC
eVNldHRpbmdOYW1lc3BhY2VPcGVyYXRpb24iX3MsIGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0
cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbik7Ci19Ci0K
LXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX2Vu
YWJsZWRCeVNldHRpbmdOYW1lc3BhY2VPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQ7Ci19Ci0KLSNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdE5hbWVzcGFjZU9i
amVjdENvbnN0cnVjdG9yX25hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsKFZNJiB2bSwgSlNP
YmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAsICJuYW1lc3BhY2VPcGVyYXRpb25Gcm9tUGFy
dGlhbCJfcywganNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9uYW1lc3Bh
Y2VPcGVyYXRpb25Gcm9tUGFydGlhbCk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVz
dE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2Jh
bE9iamVjdCk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0
dGluZzFFbmFibGVkOwotfQotI2VuZGlmCi0KLS8qIEhhc2ggdGFibGUgZm9yIENvbnN0cnVjdG9y
ICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3ROYW1lc3Bh
Y2VPYmplY3RDb25zdHJ1Y3RvclRhYmxlSW5kZXhbMTddID0gewotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMs
IDE2IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IDQsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxl
IGZvciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJuYW1l
c3BhY2VBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVzcGFj
ZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7
ICJuYW1lc3BhY2VBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0
cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkK
LSAgICB7ICJuYW1lc3BhY2VBdHRyaWJ1dGVGcm9tUGFydGlhbCIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVz
dE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZUZyb21QYXJ0aWFs
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4o
aXNFbmFibGVkSlNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JfbmFtZXNwYWNlQXR0cmli
dXRlRnJvbVBhcnRpYWwpIH0gfSwKKyAgICB7ICJuYW1lc3BhY2VBdHRyaWJ1dGVGcm9tUGFydGlh
bCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JfbmFtZXNwYWNlQXR0
cmlidXRlRnJvbVBhcnRpYWwpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMs
IHsgMCwgMCB9IH0sCiAjZW5kaWYKICAgICB7ICJvdmVybG9hZGVkTmFtZXNwYWNlT3BlcmF0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJsb2FkZWROYW1l
c3BhY2VPcGVyYXRpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW5hYmxlZEJ5U2V0
dGluZ05hbWVzcGFjZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3ROYW1lc3BhY2VP
YmplY3RDb25zdHJ1Y3Rvcl9lbmFibGVkQnlTZXR0aW5nTmFtZXNwYWNlT3BlcmF0aW9uKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFi
bGVkSlNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JfZW5hYmxlZEJ5U2V0dGluZ05hbWVz
cGFjZU9wZXJhdGlvbikgfSB9LAorICAgIHsgImVuYWJsZWRCeVNldHRpbmdOYW1lc3BhY2VPcGVy
YXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEJ5
U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKLSAgICB7ICJuYW1lc3BhY2VPcGVyYXRpb25Gcm9tUGFydGlhbCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxi
YWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNh
bGxiYWNrPihjcmVhdGVKU1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3Rvcl9uYW1lc3BhY2VP
cGVyYXRpb25Gcm9tUGFydGlhbCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVy
dHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVj
dG9yX25hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsKSB9IH0sCisgICAgeyAibmFtZXNwYWNl
T3BlcmF0aW9uRnJvbVBhcnRpYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVu
Y3Rpb25fbmFtZXNwYWNlT3BlcmF0aW9uRnJvbVBhcnRpYWwpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKIH07
CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0
b3JUYWJsZSA9IHsgNSwgMTUsIHRydWUsIG51bGxwdHIsIEpTVGVzdE5hbWVzcGFjZU9iamVjdENv
bnN0cnVjdG9yVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yVGFi
bGVJbmRleCB9OwotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3ROYW1lc3BhY2VPYmpl
Y3RET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5hbWVzcGFjZU9iamVjdERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SW50
ZXJmYWNlTmFtZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1
Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVzcGFjZU9i
amVjdERPTUNvbnN0cnVjdG9yKSB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0
TmFtZXNwYWNlT2JqZWN0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VO
YW1lIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lc3BhY2VPYmplY3RET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBK
U1ZhbHVlIEpTVGVzdE5hbWVzcGFjZU9iamVjdERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCiB7CkBAIC0xNjQsOSArMTA0LDMwIEBAIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1l
c3BhY2VPYmplY3RET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTCiAKIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lc3BhY2VPYmplY3RET01Db25zdHJ1Y3Rvcjo6aW5pdGlh
bGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwogICAgIEpTQ19UT19TVFJJTkdfVEFH
X1dJVEhPVVRfVFJBTlNJVElPTigpOwotICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgbnVs
bHB0ciwgSlNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JUYWJsZVZhbHVlcywgKnRoaXMp
OworICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TmFtZXNwYWNlT2JqZWN0Ojpp
bmZvKCksIEpTVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlz
KTsKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KCZnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldHRpbmdz
VmFsdWVzKCkudGVzdFNldHRpbmcxRW5hYmxlZCkgeworICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigibmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRpYWwiKSwgc3RybGVuKCJuYW1lc3BhY2VB
dHRyaWJ1dGVGcm9tUGFydGlhbCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
OworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgfQorI2VuZGlmCisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFs
T2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RT
ZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRC
eVNldHRpbmdOYW1lc3BhY2VPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nTmFt
ZXNwYWNlT3BlcmF0aW9uIikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUg
c2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7Cisg
ICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9
CisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPigmZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1Zh
bHVlcygpLnRlc3RTZXR0aW5nMUVuYWJsZWQpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIm5hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsIiksIHN0cmxlbigibmFtZXNwYWNlT3Bl
cmF0aW9uRnJvbVBhcnRpYWwiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29w
ZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsK
KyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
IH0KKyNlbmRpZgogfQogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZXNwYWNlT2JqZWN0Ojpz
X2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlTmFtZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZXNwYWNlT2JqZWN0KSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuY3BwCmluZGV4IDliNmYxYjJkMjIyMmRlY2IxZGVkNmQxMjBhYzNkMjRjZGVjYzg2NmEuLmJk
YjY3OTU1Y2Q5ZjRiOTgwODA4YjIxNmQ2Y2NjZjlhMmRkZDMyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAg
LTEwOSw4ICsxMDksNiBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RO
b2RlUHJvdG90eXBlLCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpCYXNlKTsKIApAQCAtMTMzLDcgKzEz
MSw2IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVT
IEpTVGVzdE5vZGVET01Db25zdHJ1Y3Rvcjo6Y29uCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5D
VElPTihKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE5vZGVET01Db25z
dHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBKU1Rlc3RO
b2RlRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3ROb2RlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAg
LTE0OCwxNTUgKzE0NSw4OCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Tm9kZURPTUNvbnN0cnVj
dG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYgogICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdE5vZGVQcm90b3R5cGVfY2FsY3VsYXRl
U2VjcmV0UmVzdWx0KFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJu
IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAsICJj
YWxjdWxhdGVTZWNyZXRSZXN1bHQiX3MsIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9jYWxj
dWxhdGVTZWNyZXRSZXN1bHQpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3ROb2Rl
UHJvdG90eXBlX2NhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rl
c3ROb2RlUHJvdG90eXBlX2dldFNlY3JldEJvb2xlYW4oVk0mIHZtLCBKU09iamVjdCogdGhpc09i
amVjdCkKLXsKLSAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5n
bG9iYWxPYmplY3QoKSwgMCwgImdldFNlY3JldEJvb2xlYW4iX3MsIGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbl9nZXRTZWNyZXRCb29sZWFuKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVk
SlNUZXN0Tm9kZVByb3RvdHlwZV9nZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJu
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCk7Ci19Ci0KLSNpZiBFTkFCTEUoVEVTVF9GRUFU
VVJFKQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0Tm9kZVByb3RvdHlwZV90ZXN0RmVhdHVy
ZUdldFNlY3JldEJvb2xlYW4oVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKLXsKLSAgICBy
ZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwg
MCwgInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiJfcywganNUZXN0Tm9kZVByb3RvdHlwZUZ1
bmN0aW9uX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik7Ci19Ci0KLXN0YXRpYyBib29sIGlz
RW5hYmxlZEpTVGVzdE5vZGVQcm90b3R5cGVfdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9i
amVjdCk7Ci0gICAgcmV0dXJuIChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYmIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
OwotfQotI2VuZGlmCi0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdE5vZGVQcm90b3R5cGVf
ZW50cmllcyhWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1
bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAwLCAiZW50cmll
cyJfcywganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpOwotfQotCi1zdGF0aWMg
Ym9vbCBpc0VuYWJsZWRKU1Rlc3ROb2RlUHJvdG90eXBlX2VudHJpZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICBy
ZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRv
ckVuYWJsZWQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0Tm9kZVByb3RvdHlw
ZV9rZXlzKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAsICJrZXlzIl9z
LCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fa2V5cyk7Ci19Ci0KLXN0YXRpYyBib29sIGlz
RW5hYmxlZEpTVGVzdE5vZGVQcm90b3R5cGVfa2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgp
OwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3ROb2RlUHJvdG90eXBlX3ZhbHVlcyhW
TSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAwLCAidmFsdWVzIl9zLCBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFi
bGVkSlNUZXN0Tm9kZVByb3RvdHlwZV92YWx1ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4gUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKTsK
LX0KLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0Tm9kZVByb3RvdHlwZV9mb3JFYWNoKFZN
JiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDEsICJmb3JFYWNoIl9zLCBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5h
YmxlZEpTVGVzdE5vZGVQcm90b3R5cGVfZm9yRWFjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgp
OwotfQotCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE5vZGVQcm90b3R5cGVUYWJsZUluZGV4WzM1XSA9
IHsKLSAgICB7IDQsIDM0IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDgsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1LCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMCwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgMzIgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIDMzIH0sCi0gICAgeyA3LCAtMSB9
LAotICAgIHsgOSwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwog
CiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Tm9kZVByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROb2RlQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9IH0sCi0gICAgeyAibmFtZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE5vZGVfbmFtZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE5vZGVfbmFtZSkgfSB9LAorICAgIHsgIm5hbWUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE5vZGVfbmFtZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE5vZGVfbmFtZSkgfSB9LAogICAgIHsgInRlc3RXb3JrZXJQcm9t
aXNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdGVzdFdvcmtlclByb21pc2UpLCAoaW50
cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+
KGNyZWF0ZUpTVGVzdE5vZGVQcm90b3R5cGVfY2FsY3VsYXRlU2VjcmV0UmVzdWx0KSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVk
SlNUZXN0Tm9kZVByb3RvdHlwZV9jYWxjdWxhdGVTZWNyZXRSZXN1bHQpIH0gfSwKLSAgICB7ICJn
ZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdE5vZGVQcm90b3R5cGVfZ2V0
U2VjcmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFi
bGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdE5vZGVQcm90b3R5cGVfZ2V0U2VjcmV0Qm9vbGVh
bikgfSB9LAorICAgIHsgImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9kZVByb3RvdHlw
ZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3JldFJlc3VsdCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAg
ICB7ICJnZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fZ2V0U2Vj
cmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJF
KQotICAgIHsgInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3ROb2RlUHJvdG90eXBlX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpT
VGVzdE5vZGVQcm90b3R5cGVfdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKSB9IH0sCisgICAg
eyAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vs
c2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAgICAgeyAi
dG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdG9KU09OKSwgKGludHB0cl90KSAo
MCkgfSB9LAotICAgIHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0Tm9kZVByb3Rv
dHlwZV9lbnRyaWVzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJs
ZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Tm9kZVByb3RvdHlwZV9lbnRyaWVzKSB9IH0sCi0g
ICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3ROb2RlUHJvdG90eXBlX2tleXMpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0Vu
YWJsZWRKU1Rlc3ROb2RlUHJvdG90eXBlX2tleXMpIH0gfSwKLSAgICB7ICJ2YWx1ZXMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFj
ayksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxs
YmFjaz4oY3JlYXRlSlNUZXN0Tm9kZVByb3RvdHlwZV92YWx1ZXMpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3ROb2Rl
UHJvdG90eXBlX3ZhbHVlcykgfSB9LAotICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRl
SlNUZXN0Tm9kZVByb3RvdHlwZV9mb3JFYWNoKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xh
enlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0Tm9kZVByb3RvdHlwZV9m
b3JFYWNoKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
X2VudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAia2V5cyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidmFsdWVz
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoKSwg
KGludHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RO
b2RlUHJvdG90eXBlVGFibGUgPSB7IDExLCAzMSwgdHJ1ZSwgSlNUZXN0Tm9kZTo6aW5mbygpLCBK
U1Rlc3ROb2RlUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdE5vZGVQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9kZVByb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdE5vZGUiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0Tm9kZVByb3RvdHlwZVRhYmxlLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vZGVQcm90b3R5cGUpIH07Citjb25zdCBD
bGFzc0luZm8gSlNUZXN0Tm9kZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5vZGUiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5v
ZGVQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0
YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE5vZGU6OmluZm8oKSwgSlNUZXN0Tm9kZVByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgYXV0byYgZW50cmllcyA9IHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCk7Ci0gICAgcmVpZnlTdGF0aWNQ
cm9wZXJ0eSh2bSwgbnVsbHB0ciwgZW50cmllcywgKmluZm8oKS0+c3RhdGljUHJvcEhhc2hUYWJs
ZS0+ZW50cnkoZW50cmllcyksICp0aGlzKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgZW50
cmllcyksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOworICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNlOwor
ICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIGhhc0Rp
c2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVz
dWx0IikpOworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0
ZVByb3BlcnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
cywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorICAgIGlmICgh
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVu
dGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZ2V0
U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oImdldFNlY3JldEJvb2xlYW4iKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAg
ICBpZiAoIShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJh
YmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRS
dW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJl
bnRyaWVzIiksIHN0cmxlbigiZW50cmllcyIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIH0KKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1l
UHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJrZXlzIiks
IHN0cmxlbigia2V5cyIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAg
ICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0K
KyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRl
cmF0b3JFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ2YWx1ZXMiKSwgc3RybGVuKCJ2
YWx1ZXMiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVs
ZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisgICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5h
YmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwor
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2gi
KSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJv
cGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisgICAgaWYgKGhhc0Rp
c2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQor
ICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX1RP
X1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMTMy
YmQyMjY3YjM1YjExYTk0ODBkNjI4MWM3ZTAwODdkOWNhMzFlMi4uNGNjMTYxYjRmOWRlNTM3Njdk
YTlhMThhNTEzZDQ2ZTMyZDFhZTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTg0LDYgKzg0LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90
b3R5cGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwQW5hbHl6ZXIuaD4KQEAgLTE1
MTMsOSArMTUxNCw2IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX3NlcmlhbGl6ZWRWYWx1ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoUmVjb3Jk
KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2N1c3RvbU1ldGhvZCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21NZXRob2RXaXRoQXJncyk7Ci0jaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZVByaXZhdGVTdGF0aWNNZXRo
b2QpOwotI2VuZGlmCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9wcml2YXRlTWV0aG9kKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3B1YmxpY0FuZFByaXZhdGVNZXRo
b2QpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fYWRkRXZlbnRMaXN0ZW5lcik7CkBAIC0xNzU1LDE2ICsxNzUzLDYgQEAgc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3R5cGVkQXJyYXlBdHRyKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial90eXBlZEFycmF5QXR0
cik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY3VzdG9tQXR0
cik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY3VzdG9t
QXR0cik7Ci0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ial9lbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHIpOwotc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVQ
cml2YXRlQXR0cik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRl
UmVhZE9ubHlBdHRyKTsKLSNlbmRpZgotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFibGVkQXRS
dW50aW1lUHJpdmF0ZVN0YXRpY1JlYWRPbmx5QXR0cik7Ci0jZW5kaWYKIHN0YXRpYyBKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9vbmZvbyk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfb25mb28pOwogc3RhdGljIEpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqX29ud2Via2l0Zm9vKTsKQEAgLTE4NzYsMTA5OSArMTg2NCwz
MzYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNUZXN0T2JqUHJvdG90eXBlLCBCYXNlKTsKICAgICAgICAgcmV0dXJuICZ2bS5w
bGFpbk9iamVjdFNwYWNlOwotICAgIH0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQotcHJp
dmF0ZToKLSAgICBKU1Rlc3RPYmpQcm90b3R5cGUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEpTQzo6SlNOb25G
aW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7Ci19OwotU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUo
SlNUZXN0T2JqUHJvdG90eXBlLCBKU1Rlc3RPYmpQcm90b3R5cGU6OkJhc2UpOwotCi11c2luZyBK
U1Rlc3RPYmpET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3I8SlNUZXN0T2JqPjsKLQot
dGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0
T2JqRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgVk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iakRPTUNvbnN0
cnVjdG9yKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKLSAgICBBU1NFUlQoY2FzdGVkVGhpcyk7
Ci0gICAgaWYgKFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMikpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAg
IGF1dG8qIGNvbnRleHQgPSBjYXN0ZWRUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0g
ICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIHRocm93Q29uc3RydWN0
b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgIlRlc3RPYmplY3QiKTsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNE
b2N1bWVudCgpKTsKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqY29u
dGV4dCk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+
dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byB0ZXN0Q2FsbGJhY2sgPSBjb252ZXJ0PElE
TENhbGxiYWNrSW50ZXJmYWNlPEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlPj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpLCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6VGhyb3dT
Y29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudE11c3RCZU9iamVjdEVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHNjb3BlLCAwLCAidGVzdENhbGxiYWNrIiwgIlRlc3RPYmplY3QiLCBudWxscHRy
KTsgfSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKLSAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQxID0gY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgxKTsKLSAgICBhdXRvIHRlc3RDYWxsYmFja0Z1bmN0aW9uID0gY29u
dmVydDxJRExDYWxsYmFja0Z1bmN0aW9uPEpTVGVzdENhbGxiYWNrRnVuY3Rpb24+PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgYXJndW1lbnQxLnZhbHVlKCksICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgW10oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpU
aHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMSwgInRlc3RDYWxsYmFja0Z1bmN0aW9uIiwgIlRlc3RP
YmplY3QiLCBudWxscHRyKTsgfSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBhdXRvIG9iamVjdCA9IFRlc3RPYmo6OmNyZWF0ZShk
b2N1bWVudCwgdGVzdENhbGxiYWNrLnJlbGVhc2VOb25OdWxsKCksIHRlc3RDYWxsYmFja0Z1bmN0
aW9uLnJlbGVhc2VOb25OdWxsKCkpOwotICAgIHN0YXRpY19hc3NlcnQoVHlwZU9yRXhjZXB0aW9u
T3JVbmRlcmx5aW5nVHlwZTxkZWNsdHlwZShvYmplY3QpPjo6aXNSZWYpOwotICAgIGF1dG8ganNW
YWx1ZSA9IHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXVEZN
b3ZlKG9iamVjdCkpOwotICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShv
YmplY3QpPikKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwot
ICAgIHNldFN1YmNsYXNzU3RydWN0dXJlSWZOZWVkZWQ8VGVzdE9iaj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCBhc09iamVjdChqc1ZhbHVlKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTih0aHJvd1Njb3BlLCB7IH0pOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1
ZSk7Ci19Ci1KU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPYmpET01Db25zdHJ1Y3Rv
ckNvbnN0cnVjdCwgSlNUZXN0T2JqRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7Ci0KLSNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0T2JqQ29uc3Ry
dWN0b3JfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhWTSYgdm0sIEpTT2JqZWN0KikK
LXsKLSAgICByZXR1cm4gQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdE9iakNv
bnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMsIHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpOwotfQotCi1zdGF0aWMg
Ym9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BB
UkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCk7Ci19Ci0jZW5kaWYKLQotI2lmIEVO
QUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKFZNJiB2bSwgSlNPYmplY3QqIHRo
aXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVj
dC0+Z2xvYmFsT2JqZWN0KCksIDEsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIl9z
LCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25T
dGF0aWMpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9l
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCk7
Ci19Ci0jZW5kaWYKLQotLyogSGFzaCB0YWJsZSBmb3IgQ29uc3RydWN0b3IgKi8KLQotc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGVJ
bmRleFs2OV0gPSB7Ci0gICAgeyA0LCAtMSB9LAotICAgIHsgNiwgNjcgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMTYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MTQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLSAgICB7IDE3LCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyNCwgNjggfSwKLSAgICB7IDUsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IDIxLCAtMSB9LAotICAgIHsgMTIsIC0xIH0sCi0gICAgeyAzLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMCwgLTEgfSwKLSAgICB7IDEwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAx
NSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyNSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMiwgNjUgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIzLCAtMSB9LAotICAgIHsgOCwgNjQgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMTMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDksIC0xIH0sCi0g
ICAgeyA3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4
LCAtMSB9LAotICAgIHsgMTEsIC0xIH0sCi0gICAgeyAxOSwgNjYgfSwKLSAgICB7IDIwLCAtMSB9
LAotICAgIHsgMjIsIC0xIH0sCi0gICAgeyAyNiwgLTEgfSwKLX07Ci0KLQotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9Ci17Ci0g
ICAgeyAic3RhdGljUmVhZE9ubHlMb25nQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqQ29uc3RydWN0b3Jfc3RhdGljUmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwK
LSAgICB7ICJzdGF0aWNTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1
Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uc3RydWN0b3Jfc3RhdGljU3RyaW5n
QXR0cikgfSB9LAotICAgIHsgInRlc3RTdGF0aWNSZWFkb25seU9iaiIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JfdGVzdFN0YXRpY1JlYWRvbmx5T2JqKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVs
bHB0cikgfSB9LAotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgeyAiZW5hYmxlZEF0UnVu
dGltZUF0dHJpYnV0ZVN0YXRpYyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFi
bGVkSlNUZXN0T2JqQ29uc3RydWN0b3JfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYykg
fSB9LAotI2Vsc2UKLSAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAotI2VuZGlm
Ci0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uU3RhdGljIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVBy
b3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKSB9IH0sCi0jZWxzZQotICAgIHsgMCwgMCwgTm9J
bnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSAgICB7ICJudWxsYWJsZVN0cmluZ1N0YXRp
Y01ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9udWxsYWJsZVN0cmluZ1N0YXRp
Y01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJzdGF0aWNNZXRob2RXaXRoQ2Fs
bGJhY2tBbmRPcHRpb25hbEFyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAg
ICB7ICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25fc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAot
ICAgIHsgImNsYXNzTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2NsYXNzTWV0
aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFs
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2NsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKSwg
KGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImNsYXNzTWV0aG9kMiIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbl9jbGFzc01ldGhvZDIpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0jaWYgRU5B
QkxFKENvbmRpdGlvbjEpCi0gICAgeyAib3ZlcmxvYWRlZE1ldGhvZDEiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDEpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0j
ZWxzZQotICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSAgICB7
ICJ0ZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
X3Rlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAi
dGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvbl90ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9
LAotI2lmIEVOQUJMRShDb25kaXRpb24xKQotICAgIHsgIkNPTkRJVElPTkFMX0NPTlNUIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0lu
dHJpbnNpYywgeyAobG9uZyBsb25nKSgwKSB9IH0sCi0jZWxzZQotICAgIHsgMCwgMCwgTm9JbnRy
aW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSAgICB7ICJDT05TVF9WQUxVRV8wIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJp
bnNpYywgeyAobG9uZyBsb25nKSgwKSB9IH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMSIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIHsgKGxvbmcgbG9uZykoMSkgfSB9LAotICAgIHsgIkNPTlNUX1ZBTFVFXzIiLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50
cmluc2ljLCB7IChsb25nIGxvbmcpKDIpIH0gfSwKLSAgICB7ICJDT05TVF9WQUxVRV80IiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0lu
dHJpbnNpYywgeyAobG9uZyBsb25nKSg0KSB9IH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfOCIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9J
bnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoOCkgfSB9LAotICAgIHsgIkNPTlNUX1ZBTFVFXzkiLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5v
SW50cmluc2ljLCB7IChsb25nIGxvbmcpKC0xKSB9IH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMTEi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIs
IE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDB4ZmZmZmZmZmYpIH0gfSwKLSAgICB7ICJDT05T
VF9WQUxVRV8xMiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0
YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMHgwMSkgfSB9LAotICAgIHsg
IkNPTlNUX1ZBTFVFXzEzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgwWDIwKSB9IH0sCi0g
ICAgeyAiQ09OU1RfVkFMVUVfMTQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDB4MWFiYykg
fSB9LAotICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcp
KDE1KSB9IH0sCi0gICAgeyAicmVhZG9ubHkiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDAp
IH0gfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqQ29uc3RydWN0b3JU
YWJsZSA9IHsgMjcsIDYzLCB0cnVlLCBudWxscHRyLCBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxl
VmFsdWVzLCBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlSW5kZXggfTsKLSNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkKLXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09ORElUSU9OQUxfQ09OU1QgPT0gMCwg
IkNPTkRJVElPTkFMX0NPTlNUIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJ
REwiKTsKLSNlbmRpZgotc3RhdGljX2Fzc2VydChUZXN0T2JqOjpDT05TVF9WQUxVRV8wID09IDAs
ICJDT05TVF9WQUxVRV8wIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwi
KTsKLXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMSA9PSAxLCAiQ09OU1RfVkFM
VUVfMSBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7Ci1zdGF0aWNf
YXNzZXJ0KFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzIgPT0gMiwgIkNPTlNUX1ZBTFVFXzIgaW4gVGVz
dE9iaiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwotc3RhdGljX2Fzc2VydChUZXN0
T2JqOjpDT05TVF9WQUxVRV80ID09IDQsICJDT05TVF9WQUxVRV80IGluIFRlc3RPYmogZG9lcyBu
b3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKLXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1Rf
VkFMVUVfOCA9PSA4LCAiQ09OU1RfVkFMVUVfOCBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZh
bHVlIGZyb20gSURMIik7Ci1zdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzkgPT0g
LTEsICJDT05TVF9WQUxVRV85IGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJ
REwiKTsKLXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTEgPT0gMHhmZmZmZmZm
ZiwgIkNPTlNUX1ZBTFVFXzExIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJ
REwiKTsKLXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTIgPT0gMHgwMSwgIkNP
TlNUX1ZBTFVFXzEyIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsK
LXN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTMgPT0gMFgyMCwgIkNPTlNUX1ZB
TFVFXzEzIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKLXN0YXRp
Y19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQgPT0gMHgxYWJjLCAiQ09OU1RfVkFMVUVf
MTQgaW4gVGVzdE9iaiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwotc3RhdGljX2Fz
c2VydChUZXN0T2JqOjpDT05TVF9JTVBMID09IDE1LCAiQ09OU1RfSU1QTCBpbiBUZXN0T2JqIGRv
ZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7Ci1zdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OnJl
YWRvbmx5ID09IDAsICJyZWFkb25seSBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZy
b20gSURMIik7Ci0KLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0T2JqRE9NQ29uc3Ry
dWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZK
U1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdE9iakRPTUNvbnN0cnVjdG9yKSB9OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T2Jq
RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0odm0p
OwotICAgIHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5cGUoKTsKLX0KLQotdGVt
cGxhdGU8PiB2b2lkIEpTVGVzdE9iakRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGll
cyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE9iajo6cHJvdG90eXBl
KHZtLCBnbG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c05vbnRyaXZpYWxTdHJpbmcodm0sICJUZXN0T2JqZWN0Il9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIpLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAg
ICBwdXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpLmVuYWJsZWRBdFJ1bnRpbWVQcml2YXRlU3RhdGljTWV0aG9kUHJp
dmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLT5nbG9iYWxPYmplY3QoKSwg
MSwgImVuYWJsZWRBdFJ1bnRpbWVQcml2YXRlU3RhdGljTWV0aG9kIl9zLCBqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRlU3RhdGljTWV0aG9kKSk7Ci0j
ZW5kaWYKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBw
dXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZW5hYmxlZEF0UnVudGltZVByaXZhdGVTdGF0
aWNSZWFkT25seUF0dHJQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwganNUZXN0T2JqQ29uc3RydWN0b3JfZW5hYmxlZEF0UnVudGltZVByaXZhdGVTdGF0aWNSZWFk
T25seUF0dHIsIG51bGxwdHIpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKTsKLSNlbmRpZgotICAgIHJlaWZ5U3RhdGljUHJvcGVy
dGllcyh2bSwgbnVsbHB0ciwgSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZVZhbHVlcywgKnRoaXMp
OwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RPYmpQcm90b3R5cGVfbWVkaWFEZXZp
Y2VzKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRyaWJ1dGVHZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0T2JqX21lZGlhRGV2aWNlcywgbnVsbHB0ciwgRE9NQXR0
cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVzdE9iajo6aW5mbygpLCBudWxscHRyIH0pOwotfQotCi1z
dGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpQcm90b3R5cGVfbWVkaWFEZXZpY2VzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVj
dCk7Ci0gICAgcmV0dXJuIChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpfHwganNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5hbGxvd3NNZWRpYURldmljZXMoKSk7Ci19Ci0KLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQot
c3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0T2JqUHJvdG90eXBlX2VuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUoVk0mIHZtLCBKU09iamVjdCopCi17Ci0gICAgcmV0dXJuIERPTUF0dHJpYnV0ZUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZSwgc2V0SlNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZUFu
bm90YXRpb24geyBKU1Rlc3RPYmo6OmluZm8oKSwgbnVsbHB0ciB9KTsKLX0KLQotc3RhdGljIGJv
b2wgaXNFbmFibGVkSlNUZXN0T2JqUHJvdG90eXBlX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFs
T2JqZWN0KTsKLSAgICByZXR1cm4gKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZTFFbmFibGVkKCkpOwotfQotI2VuZGlmCi0KLXN0YXRp
YyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdE9ialByb3RvdHlwZV9jb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlKFZNJiB2bSwgSlNPYmplY3QqKQotewotICAgIHJldHVybiBET01BdHRy
aWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBdHRyaWJ1dGUsIHNldEpTVGVzdE9ial9jb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlLCBET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0T2JqOjppbmZv
KCksIG51bGxwdHIgfSk7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVzdE9ialByb3Rv
dHlwZV9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAg
cmV0dXJuIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVh
dGVKU1Rlc3RPYmpQcm90b3R5cGVfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0
ZShWTSYgdm0sIEpTT2JqZWN0KikKLXsKLSAgICByZXR1cm4gRE9NQXR0cmlidXRlR2V0dGVyU2V0
dGVyOjpjcmVhdGUodm0sIGpzVGVzdE9ial9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlLCBzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0
ZSwgRE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVzdE9iajo6aW5mbygpLCBudWxscHRyIH0p
OwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpQcm90b3R5cGVfY29uZGl0aW9u
YWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQotewotICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlzV29ya2VyR2xvYmFsU2NvcGUoKTsKLX0KLQotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RPYmpQcm90b3R5cGVfZW5hYmxlZEF0UnVudGlt
ZU9wZXJhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJldHVybiBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAxLCAiZW5h
YmxlZEF0UnVudGltZU9wZXJhdGlvbiJfcywganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZW5h
YmxlZEF0UnVudGltZU9wZXJhdGlvbik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxlZEpTVGVz
dE9ialByb3RvdHlwZV9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0
dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVF
bmFibGVkKCk7Ci19Ci0jZW5kaWYKLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0T2JqUHJv
dG90eXBlX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKFZN
JiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDEsICJlbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCJfcywganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQpOwot
fQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpQcm90b3R5cGVfZW5hYmxlZEluU3Bl
Y2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPndvcmxkKCkuc29tZVdv
cmxkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVh
dHVyZUVuYWJsZWQoKSk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpTVGVzdE9ialByb3Rv
dHlwZV93b3JsZFNwZWNpZmljTWV0aG9kKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17
Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2Jq
ZWN0KCksIDEsICJ3b3JsZFNwZWNpZmljTWV0aG9kIl9zLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl93b3JsZFNwZWNpZmljTWV0aG9kKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVkSlNU
ZXN0T2JqUHJvdG90eXBlX3dvcmxkU3BlY2lmaWNNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+d29ybGQoKS5zb21lV29y
bGQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0T2JqUHJvdG90eXBlX2NhbGN1
bGF0ZVNlY3JldFJlc3VsdChWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0KQotewotICAgIHJl
dHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCAw
LCAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Il9zLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9j
YWxjdWxhdGVTZWNyZXRSZXN1bHQpOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RP
YmpQcm90b3R5cGVfY2FsY3VsYXRlU2VjcmV0UmVzdWx0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJuIGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUpT
VGVzdE9ialByb3RvdHlwZV9nZXRTZWNyZXRCb29sZWFuKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNP
YmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+
Z2xvYmFsT2JqZWN0KCksIDAsICJnZXRTZWNyZXRCb29sZWFuIl9zLCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9nZXRTZWNyZXRCb29sZWFuKTsKLX0KLQotc3RhdGljIGJvb2wgaXNFbmFibGVk
SlNUZXN0T2JqUHJvdG90eXBlX2dldFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKLSAgICByZXR1cm4g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKTsKLX0KLQotI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rlc3RPYmpQcm90b3R5cGVfdGVzdEZlYXR1cmVH
ZXRTZWNyZXRCb29sZWFuKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0
dXJuIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAs
ICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iX3MsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5h
YmxlZEpTVGVzdE9ialByb3RvdHlwZV90ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0
KTsKLSAgICByZXR1cm4gKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSk7Ci19
Ci0jZW5kaWYKLQotc3RhdGljIEpTVmFsdWUgY3JlYXRlSlNUZXN0T2JqUHJvdG90eXBlX2NvbmRp
dGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0KQotewotICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXNPYmplY3QtPmds
b2JhbE9iamVjdCgpLCAwLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uIl9z
LCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
RnVuY3Rpb24pOwotfQotCi1zdGF0aWMgYm9vbCBpc0VuYWJsZWRKU1Rlc3RPYmpQcm90b3R5cGVf
Y29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Ci0gICAgcmV0dXJu
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNEb2N1bWVudCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVKU1Rl
c3RPYmpQcm90b3R5cGVfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKFZNJiB2
bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIDAsICJjb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV29ya2VyRnVuY3Rpb24iX3MsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlv
bmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbik7Ci19Ci0KLXN0YXRpYyBib29sIGlzRW5hYmxl
ZEpTVGVzdE9ialByb3RvdHlwZV9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZ2xvYmFs
T2JqZWN0KTsKLSAgICByZXR1cm4ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckdsb2JhbFNjb3BlKCk7Ci19
Ci0KLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1NzFdID0gewot
ICAgIHsgNDcsIDUzNCB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgODcsIC0xIH0sCi0gICAgeyA0NSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMTE2LCAtMSB9LAotICAgIHsgMjI1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA3MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDM2LCA1MTcgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgOTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDExOCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAyNTUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDYy
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIzNCwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTY3LCA1NTQgfSwKLSAgICB7IDEzNiwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNTYsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDk3LCAtMSB9LAotICAgIHsgMzUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNjAsIDU0NiB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMjQsIC0xIH0sCi0gICAgeyAxMzksIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDIzOSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4MiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxOTMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIxMywg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgNTgsIC0xIH0sCi0gICAgeyAyMzYsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDM4LCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
NSwgLTEgfSwKLSAgICB7IDE0MywgNTU5IH0sCi0gICAgeyAxMjUsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3NSwgLTEgfSwK
LSAgICB7IDI0NiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTM0LCAtMSB9LAotICAgIHsgOTgsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDgwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA1NiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNzcsIC0xIH0sCi0gICAgeyA0Miwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgOSwgLTEgfSwKLSAgICB7IDIwNywgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDExMywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTk4LCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEwNywgLTEgfSwKLSAgICB7IDI1MiwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNDgsIDU0MiB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDQ0LCA1MzAgfSwKLSAgICB7IDE4MywgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNzAsIC0xIH0sCi0gICAgeyAyMjMs
IC0xIH0sCi0gICAgeyAyMzAsIC0xIH0sCi0gICAgeyAxNDIsIC0xIH0sCi0gICAgeyAxNTksIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDMyLCA1NDUgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
NiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDIwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgOTAsIDUzMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAxMDIsIC0xIH0sCi0gICAgeyAxNzMsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDczLCA1MjUgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMjUzLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgNDksIC0xIH0sCi0gICAgeyAxNTEsIDU0MyB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxMzAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyA4MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDI1NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3OSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxNzQsIC0xIH0sCi0gICAgeyAxMzMsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDg1LCA1MzcgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDIxLCA1MTggfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE5MSwgLTEgfSwKLSAgICB7IDE2OSwgNTY1IH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjIwLCA1NjEgfSwKLSAgICB7IDIxMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDExNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAz
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMTAzLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDY2LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDExMSwgNTQxIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCA1MjggfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAyNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxMDYsIDUzMiB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDE5MCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjM3LCAtMSB9LAotICAgIHsgMTky
LCAtMSB9LAotICAgIHsgMTAsIDUxMiB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDIzMSwgLTEgfSwKLSAgICB7IDgyLCAtMSB9LAotICAgIHsgMjE5LCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MTc3LCA1NjIgfSwKLSAgICB7IDE0NCwgNTY4IH0sCi0gICAgeyAyMDEsIC0xIH0sCi0gICAgeyAy
MzgsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEwNCwgLTEgfSwKLSAgICB7IDM3LCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxODUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDI0MSwgLTEgfSwKLSAgICB7IDEzMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyA2MCwgNTIzIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMTg3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxOTQsIDU1MyB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxNTIsIDU2NiB9LAotICAgIHsgMjgsIDU0MCB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAzOSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjQ0LCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIwMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMTU3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxNDEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDE3OCwgLTEgfSwKLSAgICB7IDIxNCwgLTEgfSwKLSAgICB7IDIxMCwg
LTEgfSwKLSAgICB7IDg4LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMDUsIDU0OCB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAyMiwgNTQ3IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgMTk1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDUz
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgNjUsIDUzNSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDUxLCA1NTUgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDEyMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgODMsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgMTM4LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTcxLCAtMSB9LAotICAgIHsgMjQwLCAtMSB9LAot
ICAgIHsgMTUzLCAtMSB9LAotICAgIHsgMTc1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAxNzIsIDU1NyB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyMjksIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjQ4LCA1NjkgfSwKLSAgICB7IDE4LCA1MTUgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgMTI3LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IDMzLCA1MjIgfSwKLSAgICB7IDEwOSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDY4LCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMwLCA1NjMgfSwKLSAgICB7IDE5LCA1MTkg
fSwKLSAgICB7IDIxOCwgLTEgfSwKLSAgICB7IDkzLCA1NjcgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMiwgNTI2IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDcyLCA1NDkgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE5NiwgLTEgfSwK
LSAgICB7IDIzMiwgLTEgfSwKLSAgICB7IDgsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgNTcsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgNTksIC0xIH0sCi0gICAgeyAyMywgNTE0IH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IDIzNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMjUwLCAtMSB9LAotICAg
IHsgMjYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE0OCwgNTU2IH0sCi0gICAgeyA5
OSwgLTEgfSwKLSAgICB7IDE1NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxNDksIC0xIH0sCi0gICAgeyAxNjMsIC0xIH0sCi0gICAgeyAyNywgNTE2IH0s
Ci0gICAgeyA0MSwgNTU4IH0sCi0gICAgeyAxNjQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgMTY1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2
NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IDkyLCA1NjAgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAx
NywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTU4LCAtMSB9LAotICAgIHsgMjI0LCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMjAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IDIwMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAxMDEsIC0xIH0sCi0gICAgeyAxOTksIC0xIH0sCi0gICAgeyA5NiwgLTEgfSwKLSAgICB7IDUw
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMDgsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyNDMsIC0xIH0sCi0g
ICAgeyA3NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAy
MTUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyA3NiwgNTI0IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMTEsIDUyNyB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDEzNywgLTEgfSwKLSAgICB7IDE0NiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE2NiwgLTEgfSwKLSAgICB7IDY3LCAtMSB9LAotICAg
IHsgOTQsIC0xIH0sCi0gICAgeyA1NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMTMy
LCAtMSB9LAotICAgIHsgMTIyLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKKyAg
ICB9CisgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3Rv
dHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNUZXN0T2Jq
UHJvdG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBKU0M6OkpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVj
dHVyZSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7
Cit9OworU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0T2JqUHJvdG90
eXBlLCBKU1Rlc3RPYmpQcm90b3R5cGU6OkJhc2UpOworCit1c2luZyBKU1Rlc3RPYmpET01Db25z
dHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3I8SlNUZXN0T2JqPjsKKworLyogSGFzaCB0YWJsZSAq
LworCitzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqVGFibGVJ
bmRleFsxNl0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNCwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTYsIDUyMSB9LAotICAgIHsgNjEsIDU0NCB9
LAotICAgIHsgMTQ1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3LCA1NTEgfSwKICAg
ICB7IC0xLCAtMSB9LAorICAgIHsgMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTAw
LCA1MzggfSwKLSAgICB7IDEyOSwgNTUyIH0sCisgICAgeyAwLCAtMSB9LAorICAgIHsgMSwgLTEg
fSwKKyAgICB7IDIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDIwOSwgLTEgfSwKLSAg
ICB7IDExMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDIwMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTIsIDUx
MyB9LAotICAgIHsgMTMsIDUyMCB9LAotICAgIHsgMTUsIDUyOSB9LAotICAgIHsgMjQsIC0xIH0s
Ci0gICAgeyAyOSwgLTEgfSwKLSAgICB7IDM0LCAtMSB9LAotICAgIHsgNDMsIC0xIH0sCi0gICAg
eyA0NiwgLTEgfSwKLSAgICB7IDUyLCA1NzAgfSwKLSAgICB7IDU1LCA1MzMgfSwKLSAgICB7IDYz
LCA1MzkgfSwKLSAgICB7IDY5LCA1MzYgfSwKLSAgICB7IDcwLCAtMSB9LAotICAgIHsgNzgsIC0x
IH0sCi0gICAgeyA4NCwgNTY0IH0sCi0gICAgeyA4NiwgLTEgfSwKLSAgICB7IDg5LCAtMSB9LAot
ICAgIHsgOTUsIC0xIH0sCi0gICAgeyAxMTAsIC0xIH0sCi0gICAgeyAxMTUsIC0xIH0sCi0gICAg
eyAxMTcsIC0xIH0sCi0gICAgeyAxMTksIC0xIH0sCi0gICAgeyAxMjMsIC0xIH0sCi0gICAgeyAx
MjYsIC0xIH0sCi0gICAgeyAxMjgsIC0xIH0sCi0gICAgeyAxMzUsIC0xIH0sCi0gICAgeyAxNDAs
IC0xIH0sCi0gICAgeyAxNDcsIC0xIH0sCi0gICAgeyAxNTAsIC0xIH0sCi0gICAgeyAxNTUsIC0x
IH0sCi0gICAgeyAxNjEsIC0xIH0sCi0gICAgeyAxNjIsIC0xIH0sCi0gICAgeyAxNjgsIC0xIH0s
Ci0gICAgeyAxNzYsIC0xIH0sCi0gICAgeyAxNzksIDU1MCB9LAotICAgIHsgMTgwLCAtMSB9LAot
ICAgIHsgMTgxLCAtMSB9LAotICAgIHsgMTg0LCAtMSB9LAotICAgIHsgMTg2LCAtMSB9LAotICAg
IHsgMTg4LCAtMSB9LAotICAgIHsgMTg5LCAtMSB9LAotICAgIHsgMTk3LCAtMSB9LAotICAgIHsg
MjA0LCAtMSB9LAotICAgIHsgMjA1LCAtMSB9LAotICAgIHsgMjA2LCAtMSB9LAotICAgIHsgMjA4
LCAtMSB9LAotICAgIHsgMjEyLCAtMSB9LAotICAgIHsgMjE2LCAtMSB9LAotICAgIHsgMjE3LCAt
MSB9LAotICAgIHsgMjIxLCAtMSB9LAotICAgIHsgMjIyLCAtMSB9LAotICAgIHsgMjI2LCAtMSB9
LAotICAgIHsgMjI3LCAtMSB9LAotICAgIHsgMjI4LCAtMSB9LAotICAgIHsgMjMzLCAtMSB9LAot
ICAgIHsgMjQyLCAtMSB9LAotICAgIHsgMjQ1LCAtMSB9LAotICAgIHsgMjQ3LCAtMSB9LAotICAg
IHsgMjQ5LCAtMSB9LAotICAgIHsgMjUxLCAtMSB9LAogfTsKIAogCitzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAidW5mb3JnZWFi
bGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdW5mb3JnZWFibGVBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorI2lm
IEVOQUJMRShDb25kaXRpb24xKQorICAgIHsgImNvbmRpdGlvbmFsQXR0cjQiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ial9jb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisjZWxzZQorICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgeyAiY29uZGl0aW9uYWxBdHRyNSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyNlbHNl
CisgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKKyNlbmRpZgorI2lmIEVOQUJM
RShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICB7ICJjb25kaXRpb25hbEF0
dHI2Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAorI2Vsc2UKKyAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAorI2VuZGlmCisg
ICAgeyAidW5mb3JnZWFibGVNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakluc3RhbmNl
RnVuY3Rpb25fdW5mb3JnZWFibGVNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCit9OworCitz
dGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyA1LCAxNSwgdHJ1ZSwgSlNU
ZXN0T2JqOjppbmZvKCksIEpTVGVzdE9ialRhYmxlVmFsdWVzLCBKU1Rlc3RPYmpUYWJsZUluZGV4
IH07CisvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLworCitzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KK3sKKyNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKKyAgICB7ICJDT05ESVRJT05BTF9DT05TVCIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IHsgKGxvbmcgbG9uZykoMCkgfSB9LAorI2Vsc2UKKyAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7
IDAsIDAgfSB9LAorI2VuZGlmCisgICAgeyAiQ09OU1RfVkFMVUVfMCIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsg
KGxvbmcgbG9uZykoMCkgfSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzEiLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7
IChsb25nIGxvbmcpKDEpIH0gfSwKKyAgICB7ICJDT05TVF9WQUxVRV8yIiwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywg
eyAobG9uZyBsb25nKSgyKSB9IH0sCisgICAgeyAiQ09OU1RfVkFMVUVfNCIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IHsgKGxvbmcgbG9uZykoNCkgfSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzgiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2lj
LCB7IChsb25nIGxvbmcpKDgpIH0gfSwKKyAgICB7ICJDT05TVF9WQUxVRV85IiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNp
YywgeyAobG9uZyBsb25nKSgtMSkgfSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzExIiwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJp
bnNpYywgeyAobG9uZyBsb25nKSgweGZmZmZmZmZmKSB9IH0sCisgICAgeyAiQ09OU1RfVkFMVUVf
MTIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVn
ZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDB4MDEpIH0gfSwKKyAgICB7ICJDT05TVF9W
QUxVRV8xMyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50
SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMFgyMCkgfSB9LAorICAgIHsgIkNP
TlNUX1ZBTFVFXzE0IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29u
c3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgweDFhYmMpIH0gfSwKKyAg
ICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0
ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxNSkgfSB9
LAorICAgIHsgInJlYWRvbmx5IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgwKSB9IH0sCisg
ICAgeyAic3RhdGljUmVhZE9ubHlMb25nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0
b3Jfc3RhdGljUmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJzdGF0aWNTdHJpbmdBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9y
X3N0YXRpY1N0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRy
KSB9IH0sCisgICAgeyAiVGVzdFN1Yk9iaiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3Jf
VGVzdFN1Yk9iaiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJ0ZXN0U3RhdGljUmVhZG9ubHlPYmoiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNvbnN0cnVjdG9yX3Rlc3RTdGF0aWNSZWFkb25seU9iaiksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIHsgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0
aWMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oMCksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0
b3JfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbnN0cnVjdG9y
X2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpIH0gfSwKKyNlbHNlCisgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKKyNlbmRpZgorI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCisgICAgeyAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKSwgKGludHB0
cl90KSAoMSkgfSB9LAorI2Vsc2UKKyAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9
LAorI2VuZGlmCisgICAgeyAibnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCisgICAgeyAic3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmci
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5k
T3B0aW9uYWxBcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAic3RhdGljTWV0aG9kV2l0
aENhbGxiYWNrQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3N0YXRpY01ldGhvZFdp
dGhDYWxsYmFja0FyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJjbGFzc01ldGhvZCIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9jbGFzc01ldGhvZCksIChpbnRwdHJfdCkgKDAp
IH0gfSwKKyAgICB7ICJjbGFzc01ldGhvZFdpdGhPcHRpb25hbCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvbl9jbGFzc01ldGhvZFdpdGhPcHRpb25hbCksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJjbGFzc01ldGhvZDIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fY2xhc3NN
ZXRob2QyKSwgKGludHB0cl90KSAoMSkgfSB9LAorI2lmIEVOQUJMRShDb25kaXRpb24xKQorICAg
IHsgIm92ZXJsb2FkZWRNZXRob2QxIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJs
b2FkZWRNZXRob2QxKSwgKGludHB0cl90KSAoMSkgfSB9LAorI2Vsc2UKKyAgICB7IDAsIDAsIE5v
SW50cmluc2ljLCB7IDAsIDAgfSB9LAorI2VuZGlmCisgICAgeyAidGVzdFN0YXRpY1Byb21pc2VG
dW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl90ZXN0U3RhdGljUHJvbWlzZUZ1
bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInRlc3RTdGF0aWNDdXN0b21Qcm9t
aXNlRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY0N1c3Rv
bVByb21pc2VGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKK307CisKKyNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09ORElUSU9OQUxfQ09OU1QgPT0g
MCwgIkNPTkRJVElPTkFMX0NPTlNUIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJv
bSBJREwiKTsKKyNlbmRpZgorc3RhdGljX2Fzc2VydChUZXN0T2JqOjpDT05TVF9WQUxVRV8wID09
IDAsICJDT05TVF9WQUxVRV8wIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJ
REwiKTsKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMSA9PSAxLCAiQ09OU1Rf
VkFMVUVfMSBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CitzdGF0
aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzIgPT0gMiwgIkNPTlNUX1ZBTFVFXzIgaW4g
VGVzdE9iaiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOworc3RhdGljX2Fzc2VydChU
ZXN0T2JqOjpDT05TVF9WQUxVRV80ID09IDQsICJDT05TVF9WQUxVRV80IGluIFRlc3RPYmogZG9l
cyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09O
U1RfVkFMVUVfOCA9PSA4LCAiQ09OU1RfVkFMVUVfOCBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNo
IHZhbHVlIGZyb20gSURMIik7CitzdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzkg
PT0gLTEsICJDT05TVF9WQUxVRV85IGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJv
bSBJREwiKTsKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTEgPT0gMHhmZmZm
ZmZmZiwgIkNPTlNUX1ZBTFVFXzExIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJv
bSBJREwiKTsKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTIgPT0gMHgwMSwg
IkNPTlNUX1ZBTFVFXzEyIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwi
KTsKK3N0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTMgPT0gMFgyMCwgIkNPTlNU
X1ZBTFVFXzEzIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKK3N0
YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQgPT0gMHgxYWJjLCAiQ09OU1RfVkFM
VUVfMTQgaW4gVGVzdE9iaiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOworc3RhdGlj
X2Fzc2VydChUZXN0T2JqOjpDT05TVF9JTVBMID09IDE1LCAiQ09OU1RfSU1QTCBpbiBUZXN0T2Jq
IGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CitzdGF0aWNfYXNzZXJ0KFRlc3RPYmo6
OnJlYWRvbmx5ID09IDAsICJyZWFkb25seSBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZhbHVl
IGZyb20gSURMIik7CisKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9B
VFRSSUJVVEVTIEpTVGVzdE9iakRPTUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIFZN
JiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byogY2FzdGVkVGhpcyA9IGpzQ2FzdDxK
U1Rlc3RPYmpET01Db25zdHJ1Y3Rvcio+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CisgICAgQVNT
RVJUKGNhc3RlZFRoaXMpOworICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291
bnQoKSA8IDIpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9i
YWxPYmplY3QpKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gY2FzdGVkVGhpcy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOworICAgIGlmIChVTkxJS0VMWSghY29udGV4dCkpCisgICAgICAgIHJldHVy
biB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJyb3Io
KmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsICJUZXN0T2JqZWN0Iik7CisgICAgQVNT
RVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2Fz
dDxEb2N1bWVudD4oKmNvbnRleHQpOworICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVu
dDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOworICAgIGF1dG8gdGVzdENhbGxi
YWNrID0gY29udmVydDxJRExDYWxsYmFja0ludGVyZmFjZTxKU1Rlc3RDYWxsYmFja0ludGVyZmFj
ZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSwgKmNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRNdXN0QmVPYmplY3RF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMCwgInRlc3RDYWxsYmFjayIsICJUZXN0
T2JqZWN0IiwgbnVsbHB0cik7IH0pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50
MSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisgICAgYXV0byB0ZXN0Q2FsbGJh
Y2tGdW5jdGlvbiA9IGNvbnZlcnQ8SURMQ2FsbGJhY2tGdW5jdGlvbjxKU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uPj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgpLCAqY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudE11c3RCZUZ1
bmN0aW9uRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDEsICJ0ZXN0Q2FsbGJhY2tG
dW5jdGlvbiIsICJUZXN0T2JqZWN0IiwgbnVsbHB0cik7IH0pOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgYXV0byBvYmplY3QgPSBU
ZXN0T2JqOjpjcmVhdGUoZG9jdW1lbnQsIHRlc3RDYWxsYmFjay5yZWxlYXNlTm9uTnVsbCgpLCB0
ZXN0Q2FsbGJhY2tGdW5jdGlvbi5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KFR5cGVPckV4Y2VwdGlvbk9yVW5kZXJseWluZ1R5cGU8ZGVjbHR5cGUob2JqZWN0KT46OmlzUmVm
KTsKKyAgICBhdXRvIGpzVmFsdWUgPSB0b0pTTmV3bHlDcmVhdGVkPElETEludGVyZmFjZTxUZXN0
T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKTsKKyAgICBpZiBjb25zdGV4cHIgKElzRXhjZXB0
aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgeyB9KTsKKyAgICBzZXRTdWJjbGFzc1N0cnVjdHVyZUlmTmVlZGVkPFRlc3RPYmo+
KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXNPYmplY3QoanNWYWx1ZSkpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVmFsdWUpOworfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0
T2JqRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE9iakRPTUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QpOworCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqRE9NQ29uc3RydWN0b3IpIH07CisK
K3RlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RPYmpET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9y
U3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5m
dW5jdGlvblByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0T2JqRE9NQ29u
c3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKK3sKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSwgSlNUZXN0T2JqOjpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlRlc3RP
YmplY3QiX3MpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMiksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHJlaWZ5U3RhdGljUHJv
cGVydGllcyh2bSwgSlNUZXN0T2JqOjppbmZvKCksIEpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGVW
YWx1ZXMsICp0aGlzKTsKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIGlmICghUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkg
eworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVN0YXRpYyIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKSk7Cisg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlT
bG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIiksIHN0cmxlbigiZW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvblN0YXRpYyIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFi
bGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6
OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgfQorI2VuZGlmCit9CisKKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLworCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAotICAgIHsgInJlYWRPbmx5TG9uZ0F0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWFk
T25seUxvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgInJlYWRPbmx5U3RyaW5nQXR0ciIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqX3JlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJy
ZWFkT25seVRlc3RPYmpBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVhZE9ubHlUZXN0T2JqQXR0
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KG51bGxwdHIpIH0gfSwKLSAgICB7ICJlbnVtQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ial9lbnVtQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9lbnVtQXR0cikgfSB9LAotICAg
IHsgImJ5dGVBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2J5
dGVBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX2J5dGVBdHRyKSB9IH0sCi0gICAgeyAib2N0ZXRBdHRyIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX29jdGV0QXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
al9vY3RldEF0dHIpIH0gfSwKLSAgICB7ICJzaG9ydEF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpfc2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3Nob3J0QXR0cikgfSB9
LAotICAgIHsgImNsYW1wZWRTaG9ydEF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfY2xhbXBlZFNob3J0QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9jbGFtcGVkU2hvcnRBdHRy
KSB9IH0sCi0gICAgeyAiZW5mb3JjZVJhbmdlU2hvcnRBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX2VuZm9yY2VSYW5nZVNob3J0QXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9l
bmZvcmNlUmFuZ2VTaG9ydEF0dHIpIH0gfSwKLSAgICB7ICJ1bnNpZ25lZFNob3J0QXR0ciIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial91bnNpZ25lZFNob3J0QXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial91bnNpZ25lZFNob3J0QXR0cikgfSB9LAotICAgIHsgImxvbmdBdHRyIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2xvbmdBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
X2xvbmdBdHRyKSB9IH0sCi0gICAgeyAibG9uZ0xvbmdBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX2xvbmdMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9sb25nTG9uZ0F0
dHIpIH0gfSwKLSAgICB7ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial91bnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial91
bnNpZ25lZExvbmdMb25nQXR0cikgfSB9LAotICAgIHsgInN0cmluZ0F0dHIiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJp
bmdBdHRyKSB9IH0sCi0gICAgeyAidXN2c3RyaW5nQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial91c3ZzdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3VzdnN0cmluZ0F0
dHIpIH0gfSwKLSAgICB7ICJ0ZXN0T2JqQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ial90ZXN0T2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial90ZXN0T2JqQXR0cikgfSB9LAot
ICAgIHsgInRlc3ROdWxsYWJsZU9iakF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfdGVzdE51bGxhYmxlT2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial90ZXN0TnVsbGFibGVP
YmpBdHRyKSB9IH0sCisgICAgeyAicmVhZE9ubHlMb25nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJy
ZWFkT25seVN0cmluZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqX3JlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWFkT25seVRlc3RP
YmpBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgImVudW1BdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfZW51bUF0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpfZW51bUF0dHIpIH0gfSwKKyAgICB7ICJieXRlQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2J5dGVBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX2J5dGVBdHRyKSB9IH0sCisgICAgeyAib2N0ZXRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfb2N0ZXRBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqX29jdGV0QXR0cikgfSB9LAorICAgIHsgInNob3J0QXR0ciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3No
b3J0QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ial9zaG9ydEF0dHIpIH0gfSwKKyAgICB7ICJjbGFtcGVkU2hvcnRB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfY2xhbXBlZFNob3J0QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9jbGFtcGVkU2hvcnRBdHRy
KSB9IH0sCisgICAgeyAiZW5mb3JjZVJhbmdlU2hvcnRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfZW5mb3JjZVJhbmdl
U2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqX2VuZm9yY2VSYW5nZVNob3J0QXR0cikgfSB9LAorICAgIHsg
InVuc2lnbmVkU2hvcnRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdW5zaWduZWRTaG9ydEF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpf
dW5zaWduZWRTaG9ydEF0dHIpIH0gfSwKKyAgICB7ICJsb25nQXR0ciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2xvbmdBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqX2xvbmdBdHRyKSB9IH0sCisgICAgeyAibG9uZ0xvbmdBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
bG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2xvbmdMb25nQXR0cikgfSB9LAorICAgIHsgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdW5zaWduZWRMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpf
dW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKKyAgICB7ICJzdHJpbmdBdHRyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3Ry
aW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdBdHRyKSB9IH0sCisgICAgeyAidXN2c3RyaW5nQXR0
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqX3VzdnN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0cikgfSB9LAor
ICAgIHsgInRlc3RPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdGVzdE9iakF0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdGVzdE9i
akF0dHIpIH0gfSwKKyAgICB7ICJ0ZXN0TnVsbGFibGVPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdGVzdE51bGxh
YmxlT2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ial90ZXN0TnVsbGFibGVPYmpBdHRyKSB9IH0sCiAgICAgeyAi
bGVuaWVudFRlc3RPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbGVuaWVudFRlc3RP
YmpBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX2xlbmllbnRUZXN0T2JqQXR0cikgfSB9LAotICAgIHsgInN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqX3N0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX3N0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKSB9IH0sCi0gICAgeyAi
dXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcp
IH0gfSwKLSAgICB7ICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYnl0ZVN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2J5dGVTdHJpbmdBdHRyVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZykgfSB9LAotICAgIHsgInN0cmluZ0xvbmdSZWNvcmRBdHRyIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3N0cmluZ0xvbmdSZWNvcmRBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqX3N0cmluZ0xvbmdSZWNvcmRBdHRyKSB9IH0sCi0gICAgeyAidXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
dXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIpIH0gfSwKLSAgICB7ICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0cikgfSB9LAotICAgIHsgInN0cmluZ09ialJlY29y
ZEF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3RyaW5nT2Jq
UmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdPYmpSZWNvcmRBdHRyKSB9IH0sCi0gICAgeyAi
c3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3N0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJp
bmdOdWxsYWJsZU9ialJlY29yZEF0dHIpIH0gfSwKLSAgICB7ICJzdHJpbmdWb2lkQ2FsbGJhY2tS
ZWNvcmRBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3N0cmlu
Z1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfc3RyaW5nVm9pZENhbGxiYWNrUmVj
b3JkQXR0cikgfSB9LAotICAgIHsgImRpY3Rpb25hcnlBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX2RpY3Rpb25hcnlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2RpY3Rpb25h
cnlBdHRyKSB9IH0sCi0gICAgeyAibnVsbGFibGVEaWN0aW9uYXJ5QXR0ciIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZURpY3Rpb25hcnlBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0dHIpIH0gfSwKLSAgICB7ICJhbm5vdGF0ZWRUeXBl
SW5VbmlvbkF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYW5u
b3RhdGVkVHlwZUluVW5pb25BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2Fubm90YXRlZFR5cGVJblVuaW9uQXR0
cikgfSB9LAotICAgIHsgImFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ciIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKSB9IH0sCi0gICAgeyAiaW1w
bGVtZW50YXRpb25FbnVtQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial9pbXBsZW1lbnRhdGlvbkVudW1BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2ltcGxlbWVudGF0aW9uRW51
bUF0dHIpIH0gfSwKLSAgICB7ICJtZWRpYURldmljZXMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RPYmpQ
cm90b3R5cGVfbWVkaWFEZXZpY2VzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9w
ZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0T2JqUHJvdG90eXBlX21lZGlhRGV2
aWNlcykgfSB9LAotICAgIHsgIlhNTE9iakF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfWE1MT2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9YTUxPYmpBdHRyKSB9IH0sCi0g
ICAgeyAiY3JlYXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2Ny
ZWF0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ial9jcmVhdGUpIH0gfSwKLSAgICB7ICJyZWZsZWN0ZWRTdHJpbmdBdHRy
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZFN0cmlu
Z0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0cikgfSB9LAotICAgIHsgInJlZmxl
Y3RlZFVTVlN0cmluZ0F0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpfcmVmbGVjdGVkVVNWU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdB
dHRyKSB9IH0sCi0gICAgeyAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZEludGVncmFsQXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
al9yZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpIH0gfSwKLSAgICB7ICJyZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWZs
ZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cikgfSB9LAotICAgIHsgInJlZmxlY3RlZEJvb2xlYW5BdHRyIiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyKSB9IH0sCi0gICAgeyAicmVmbGVjdGVkVVJMQXR0
ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWZsZWN0ZWRVUkxB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVSTEF0dHIpIH0gfSwKLSAgICB7ICJyZWZsZWN0ZWRV
U1ZVUkxBdHRyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxl
Y3RlZFVTVlVSTEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVVNWVVJMQXR0cikgfSB9LAotICAg
IHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdB
dHRyKSB9IH0sCi0gICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpIH0gfSwKLSAgICB7ICJy
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ial9yZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0cikgfSB9LAotICAgIHsgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9t
VVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRDdXN0b21VUkxBdHRyKSB9IH0sCisgICAgeyAi
c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZykgfSB9LAorICAgIHsgInVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpIH0gfSwK
KyAgICB7ICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9i
eXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYnl0ZVN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKSB9IH0sCisgICAgeyAic3RyaW5nTG9u
Z1JlY29yZEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJpbmdMb25nUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJp
bmdMb25nUmVjb3JkQXR0cikgfSB9LAorICAgIHsgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHIpIH0gfSwKKyAgICB7ICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3Vz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRy
KSB9IH0sCisgICAgeyAic3RyaW5nT2JqUmVjb3JkQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3N0cmluZ09ialJlY29y
ZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfc3RyaW5nT2JqUmVjb3JkQXR0cikgfSB9LAorICAgIHsgInN0cmlu
Z051bGxhYmxlT2JqUmVjb3JkQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3N0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial9zdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIpIH0gfSwKKyAgICB7ICJz
dHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3RyaW5nVm9pZENhbGxiYWNrUmVj
b3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKSB9IH0sCisg
ICAgeyAiZGljdGlvbmFyeUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9kaWN0aW9uYXJ5QXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9k
aWN0aW9uYXJ5QXR0cikgfSB9LAorICAgIHsgIm51bGxhYmxlRGljdGlvbmFyeUF0dHIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9udWxsYWJsZURpY3Rpb25hcnlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0
dHIpIH0gfSwKKyAgICB7ICJhbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9hbm5vdGF0
ZWRUeXBlSW5VbmlvbkF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKSB9
IH0sCisgICAgeyAiYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2Fubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
cikgfSB9LAorICAgIHsgImltcGxlbWVudGF0aW9uRW51bUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9pbXBsZW1lbnRh
dGlvbkVudW1BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2ltcGxlbWVudGF0aW9uRW51bUF0dHIpIH0gfSwKKyAg
ICB7ICJtZWRpYURldmljZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqX21lZGlhRGV2aWNlcyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJYTUxPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfWE1MT2Jq
QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ial9YTUxPYmpBdHRyKSB9IH0sCisgICAgeyAiY3JlYXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
Y3JlYXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX2NyZWF0ZSkgfSB9LAorICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0
dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFN0cmlu
Z0F0dHIpIH0gfSwKKyAgICB7ICJyZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVj
dGVkVVNWU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKSB9IH0s
CisgICAgeyAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdyYWxB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEludGVncmFsQXR0cikgfSB9LAorICAgIHsgInJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpIH0gfSwKKyAg
ICB7ICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyKSB9IH0sCisgICAgeyAicmVmbGVjdGVkVVJM
QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3JlZmxlY3RlZFVSTEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVVJMQXR0
cikgfSB9LAorICAgIHsgInJlZmxlY3RlZFVTVlVSTEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZV
UkxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVTVlVSTEF0dHIpIH0gfSwKKyAgICB7ICJyZWZs
ZWN0ZWRTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9y
ZWZsZWN0ZWRTdHJpbmdBdHRyKSB9IH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0cikgfSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbUJvb2xl
YW5BdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcmVm
bGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpIH0gfSwKKyAgICB7ICJyZWZsZWN0ZWRDdXN0b21VUkxB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRD
dXN0b21VUkxBdHRyKSB9IH0sCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0
ZUpTVGVzdE9ialByb3RvdHlwZV9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNU
ZXN0T2JqUHJvdG90eXBlX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJl
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSB9IH0sCiAjZWxzZQogICAg
IHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJ0eXBlZEFy
cmF5QXR0ciIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial90eXBlZEFy
cmF5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ial90eXBlZEFycmF5QXR0cikgfSB9LAotICAgIHsgImN1c3RvbUF0
dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY3VzdG9tQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial9jdXN0b21BdHRyKSB9IH0sCisgICAgeyAidHlwZWRBcnJheUF0dHIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al90eXBlZEFycmF5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial90eXBlZEFycmF5QXR0cikgfSB9LAorICAgIHsg
ImN1c3RvbUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9jdXN0b21BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2N1c3RvbUF0dHIpIH0g
fSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uNCkKICAgICB7ICJqc0J1aWx0aW5BdHRyaWJ1dGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5BdHRyaWJ1dGVD
b2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSAoc2V0VGVzdE9iakpzQnVpbHRpbkF0dHJpYnV0ZUNv
ZGVHZW5lcmF0b3IpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAw
IH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb240KQotICAgIHsgImpzQnVpbHRpblJl
YWRPbmx5QXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1
aWx0aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJh
dG9yPih0ZXN0T2JqSnNCdWlsdGluUmVhZE9ubHlBdHRyaWJ1dGVDb2RlR2VuZXJhdG9yKSwgKGlu
dHB0cl90KSAobnVsbHB0cikgfSB9LAorICAgIHsgImpzQnVpbHRpblJlYWRPbmx5QXR0cmlidXRl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpCdWlsdGluKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0
aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5SZWFkT25seUF0dHJpYnV0ZUNvZGVHZW5lcmF0
b3IpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMs
IHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJvbmZvbyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9vbmZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9vbmZvbykgfSB9LAotICAgIHsg
Im9ud2Via2l0Zm9vIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX29u
d2Via2l0Zm9vKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqX29ud2Via2l0Zm9vKSB9IH0sCi0gICAgeyAid2l0aEV4ZWNT
dGF0ZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial93
aXRoRXhlY1N0YXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGUp
IH0gfSwKLSAgICB7ICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial93aXRoQ2FsbFdpdGhBbmRTZXR0
ZXJDYWxsV2l0aEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial93aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxs
V2l0aEF0dHJpYnV0ZSkgfSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlKSB9IH0sCi0gICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1
dGUpIH0gfSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
Ympfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0
aFNwYWNlc0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm9uZm9vIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfb25mb28pLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfb25mb28pIH0gfSwKKyAgICB7ICJvbndlYmtpdGZvbyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX29ud2Via2l0Zm9v
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqX29ud2Via2l0Zm9vKSB9IH0sCisgICAgeyAid2l0aEV4ZWNTdGF0ZUF0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfd2l0aEV4ZWNT
dGF0ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRo
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpIH0gfSwK
KyAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlKSB9IH0sCisgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGUpIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLSAgICB7ICJjb25kaXRpb25h
bEF0dHIxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMSkgfSB9LAorICAgIHsgImNvbmRp
dGlvbmFsQXR0cjEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25hbEF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0g
fSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikK
LSAgICB7ICJjb25kaXRpb25hbEF0dHIyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMikg
fSB9LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25hbEF0dHIyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjIpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMikKLSAgICB7ICJjb25kaXRpb25hbEF0dHIzIiwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpf
Y29uZGl0aW9uYWxBdHRyMykgfSB9LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjMiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9j
b25kaXRpb25hbEF0dHIzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMpIH0gfSwKICNlbHNl
CiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgImNh
Y2hlZEF0dHJpYnV0ZTEiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jYWNoZWRBdHRyaWJ1dGUxKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0
cikgfSB9LAotICAgIHsgImNhY2hlZEF0dHJpYnV0ZTIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jYWNo
ZWRBdHRyaWJ1dGUyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTEiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NhY2hlZEF0dHJpYnV0ZTEpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfY2FjaGVkQXR0cmlidXRlMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNpZiBFTkFCTEUoQ09ORElU
SU9OKQotICAgIHsgImNhY2hlZEF0dHJpYnV0ZTMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jYWNoZWRB
dHRyaWJ1dGUzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4obnVsbHB0cikgfSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTMiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NhY2hlZEF0dHJpYnV0ZTMpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAg
ICB7ICJhbnlBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpfYW55QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2FueUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgIm9i
amVjdEF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9v
YmplY3RBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfb2JqZWN0QXR0cmlidXRlKSB9IH0sCi0gICAgeyAi
Y29udGVudERvY3VtZW50IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29udGVudERvY3VtZW50KSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0
cikgfSB9LAotICAgIHsgIm11dGFibGVQb2ludCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ial9tdXRhYmxlUG9pbnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfbXV0YWJsZVBvaW50KSB9IH0s
Ci0gICAgeyAic3RyYXdiZXJyeSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial9zdHJhd2JlcnJ5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3N0cmF3YmVycnkpIH0gfSwKLSAgICB7ICJkZXNj
cmlwdGlvbiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2Rlc2NyaXB0aW9uKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAg
IHsgImlkIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2lkKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX2lkKSB9IH0sCi0gICAgeyAiaGFzaCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2hhc2gpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxs
cHRyKSB9IH0sCi0gICAgeyAicmVwbGFjZWFibGVBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpf
cmVwbGFjZWFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJudWxsYWJsZURvdWJsZUF0dHJpYnV0
ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX251bGxhYmxlRG91YmxlQXR0cmlidXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9
LAotICAgIHsgIm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX251bGxh
YmxlTG9uZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJudWxsYWJsZUJvb2xlYW5BdHRy
aWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCi0gICAgeyAibnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9udWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJudWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial9udWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFi
bGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAibnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZVVT
VlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX251bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJudWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0
dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJs
ZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZUJ5dGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgImF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqX2F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJhdHRyaWJ1dGVXaXRoUmVzZXJ2
ZWRFbnVtVHlwZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9hdHRy
aWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9hdHRyaWJ1dGVXaXRoUmVzZXJ2
ZWRFbnVtVHlwZSkgfSB9LAotICAgIHsgInRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRl
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdGVzdFJlYWRPbmx5Vm9pZFBy
b21pc2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAidGVzdFJlYWRPbmx5UHJvbWlzZUF0
dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3Rlc3RSZWFkT25s
eVByb21pc2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAicHV0Rm9yd2FyZHNBdHRyaWJ1
dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcHV0Rm9yd2FyZHNB
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpfcHV0Rm9yd2FyZHNBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJw
dXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3B1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcHV0
Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgInN0cmluZ2lmaWVyQXR0cmli
dXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3N0cmluZ2lmaWVy
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqX3N0cmluZ2lmaWVyQXR0cmlidXRlKSB9IH0sCi0gICAgeyAi
Y29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlD
YWxsYmFjaywgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0
eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RPYmpQcm90b3R5cGVfY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dpbmRvd0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlF
bmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdE9ialByb3RvdHlwZV9jb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dvcmtlckF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjaywgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVK
U1Rlc3RPYmpQcm90b3R5cGVfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlz
RW5hYmxlZEpTVGVzdE9ialByb3RvdHlwZV9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlKSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtl
ckF0dHJpYnV0ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2Nv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUpIH0gfSwKLSAgICB7
ICItbGVhZGluZy1oeXBoZW4tYXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX2Rhc2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ial9kYXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGUpIH0gfSwKLSAg
ICB7ICJ0cmFpbGluZy1oeXBoZW4tYXR0cmlidXRlLSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ial90cmFpbGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNo
XyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial90cmFpbGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNoXykg
fSB9LAotICAgIHsgImxlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKSB9IH0sCi0gICAgeyAiX2Rv
dWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUs
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKSB9IH0sCi0gICAg
eyAidHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUs
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX3RyYWlsaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlXyksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ial90cmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8pIH0gfSwKKyAgICB7ICJhbnlBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ial9hbnlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYW55QXR0cmlidXRlKSB9IH0s
CisgICAgeyAib2JqZWN0QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfb2JqZWN0QXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqX29iamVjdEF0dHJpYnV0ZSkgfSB9LAorICAgIHsgImNvbnRlbnREb2N1bWVudCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29udGVudERvY3VtZW50KSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAorICAgIHsgIm11dGFibGVQb2ludCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX211dGFibGVQb2ludCksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9t
dXRhYmxlUG9pbnQpIH0gfSwKKyAgICB7ICJzdHJhd2JlcnJ5Iiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3RyYXdiZXJyeSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial9zdHJhd2JlcnJ5KSB9IH0sCisgICAgeyAiZGVzY3JpcHRpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2Rlc2NyaXB0aW9uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgImlkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfaWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfaWQpIH0gfSwKKyAgICB7ICJoYXNoIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9oYXNoKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsg
InJlcGxhY2VhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJudWxsYWJsZURvdWJsZUF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFi
bGVEb3VibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAibnVsbGFibGVMb25nQXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZUxvbmdBdHRy
aWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9IH0sCisgICAgeyAibnVsbGFibGVCb29sZWFuQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCisgICAgeyAibnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX251bGxhYmxlU3RyaW5nQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAor
ICAgIHsgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFibGVMb25n
U2V0dGFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfbnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGUpIH0gfSwKKyAgICB7ICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
bnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZVN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlKSB9IH0sCisgICAgeyAibnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX251bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpfbnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsg
Im51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFibGVCeXRl
U3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfbnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJhdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJhdHRyaWJ1
dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1U
eXBlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqX2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKSB9IH0sCisgICAg
eyAidGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3Rlc3RSZWFkT25seVZvaWRQ
cm9taXNlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1
dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqX3Rlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAicHV0Rm9y
d2FyZHNBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9wdXRGb3J3YXJkc0F0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9w
dXRGb3J3YXJkc0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgInB1dEZvcndhcmRzTnVsbGFibGVBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ial9wdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3B1
dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJzdHJpbmdpZmllckF0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3N0cmluZ2lmaWVyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3N0cmluZ2lmaWVy
QXR0cmlidXRlKSB9IH0sCisgICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSkgfSB9LAorICAgIHsg
ImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25h
bGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9Xb3JrZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QW5kV29ya2VyQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dp
bmRvd0FuZFdvcmtlckF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9jb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QW5kV29ya2VyQXR0cmlidXRlKSB9IH0sCisgICAgeyAiLWxlYWRpbmctaHlwaGVuLWF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqX2Rhc2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial9kYXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGUpIH0gfSwK
KyAgICB7ICJ0cmFpbGluZy1oeXBoZW4tYXR0cmlidXRlLSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hf
aHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlw
aGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfKSB9IH0sCisgICAgeyAibGVhZGluZ191bmRlcnNjb3Jl
X2F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSkgfSB9LAorICAgIHsgIl9kb3VibGVfbGVh
ZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2Nv
cmVfYXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmli
dXRlKSB9IH0sCisgICAgeyAidHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
dHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3RyYWlsaW5nX3VuZGVy
c2NvcmVfYXR0cmlidXRlXykgfSB9LAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgeyAi
ZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RPYmpQcm90
b3R5cGVfZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdE9ialByb3RvdHlw
ZV9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKSB9IH0sCisgICAgeyAiZW5hYmxlZEF0UnVudGlt
ZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9w
ZXJhdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJp
bnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgImVuYWJsZWRJblNwZWNpZmljV29ybGRX
aGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdE9ialByb3Rv
dHlwZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5h
YmxlZEpTVGVzdE9ialByb3RvdHlwZV9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVG
ZWF0dXJlRW5hYmxlZCkgfSB9LAotICAgIHsgIndvcmxkU3BlY2lmaWNNZXRob2QiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFj
az4oY3JlYXRlSlNUZXN0T2JqUHJvdG90eXBlX3dvcmxkU3BlY2lmaWNNZXRob2QpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRK
U1Rlc3RPYmpQcm90b3R5cGVfd29ybGRTcGVjaWZpY01ldGhvZCkgfSB9LAotICAgIHsgImNhbGN1
bGF0ZVNlY3JldFJlc3VsdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpQcm9wZXJ0eUNhbGxiYWNrKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PExhenlQcm9wZXJ0eUNhbGxiYWNrPihjcmVhdGVKU1Rlc3RPYmpQcm90b3R5cGVfY2Fs
Y3VsYXRlU2VjcmV0UmVzdWx0KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxJc0xhenlQcm9wZXJ0
eUVuYWJsZWRDYWxsYmFjaz4oaXNFbmFibGVkSlNUZXN0T2JqUHJvdG90eXBlX2NhbGN1bGF0ZVNl
Y3JldFJlc3VsdCkgfSB9LAotICAgIHsgImdldFNlY3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3Jl
YXRlSlNUZXN0T2JqUHJvdG90eXBlX2dldFNlY3JldEJvb2xlYW4pLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RPYmpQ
cm90b3R5cGVfZ2V0U2VjcmV0Qm9vbGVhbikgfSB9LAorICAgIHsgImVuYWJsZWRJblNwZWNpZmlj
V29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCksIChpbnRw
dHJfdCkgKDEpIH0gfSwKKyAgICB7ICJ3b3JsZFNwZWNpZmljTWV0aG9kIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl93b3JsZFNwZWNpZmljTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAor
ICAgIHsgImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
Y2FsY3VsYXRlU2VjcmV0UmVzdWx0KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImdldFNl
Y3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2dldFNlY3JldEJvb2xlYW4p
LCAoaW50cHRyX3QpICgwKSB9IH0sCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJ0
ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UHJvcGVydHlDYWxsYmFjayksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxMYXp5UHJvcGVydHlDYWxsYmFjaz4oY3JlYXRlSlNUZXN0T2JqUHJv
dG90eXBlX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8SXNMYXp5UHJvcGVydHlFbmFibGVkQ2FsbGJhY2s+KGlzRW5hYmxlZEpTVGVzdE9ialByb3Rv
dHlwZV90ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pIH0gfSwKKyAgICB7ICJ0ZXN0RmVhdHVy
ZUdldFNlY3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RGZWF0dXJl
R2V0U2VjcmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgpAQCAtMzEyNiw4ICsyMzUxLDggQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogICAgIHsgIm9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQ
YXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiYnVmZmVyU291cmNlUGFyYW1l
dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9idWZmZXJTb3VyY2VQYXJhbWV0ZXIpLCAo
aW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pLCAo
aW50cHRyX3QpICgyKSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1
bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlBy
b3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TGF6
eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdE9ialByb3RvdHlwZV9jb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93RnVuY3Rpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PElzTGF6eVBy
b3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RPYmpQcm90b3R5cGVfY29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlByb3BlcnR5Q2FsbGJhY2spLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TGF6eVByb3BlcnR5Q2FsbGJhY2s+KGNyZWF0ZUpTVGVzdE9ialByb3Rv
dHlwZV9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24pLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PElzTGF6eVByb3BlcnR5RW5hYmxlZENhbGxiYWNrPihpc0VuYWJsZWRKU1Rlc3RP
YmpQcm90b3R5cGVfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKSB9IH0sCisg
ICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24pLCAoaW50
cHRyX3QpICgwKSB9IH0sCisgICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0
aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29y
a2VyRnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiY29uZGl0aW9uYWxseUV4
cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rpb24pLCAoaW50cHRy
X3QpICgwKSB9IH0sCiAgICAgeyAiLWxlYWRpbmctaHlwaGVuLWZ1bmN0aW9uIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9kYXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbiks
IChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ0cmFpbGluZy1oeXBoZW4tZnVuY3Rpb24tIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90cmFpbGluZ19kYXNoX2h5cGhlbl9kYXNoX2Z1bmN0
aW9uX2Rhc2hfKSwgKGludHB0cl90KSAoMCkgfSB9LApAQCAtMzEzNyw5NSArMjM2MiwxMzUgQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogICAgIHsgImVuY29kZUludG8iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2VuY29k
ZUludG8pLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2lmIEVOQUJM
RShDb25kaXRpb24xKQotICAgIHsgIkNPTkRJVElPTkFMX0NPTlNUIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAo
bG9uZyBsb25nKSgwKSB9IH0sCisgICAgeyAiQ09ORElUSU9OQUxfQ09OU1QiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2lj
LCB7IChsb25nIGxvbmcpKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywg
eyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgIkNPTlNUX1ZBTFVFXzAiLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7
IChsb25nIGxvbmcpKDApIH0gfSwKLSAgICB7ICJDT05TVF9WQUxVRV8xIiwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywg
eyAobG9uZyBsb25nKSgxKSB9IH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMiIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0
ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IHsgKGxvbmcgbG9uZykoMikgfSB9LAotICAgIHsgIkNPTlNUX1ZBTFVFXzQiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2lj
LCB7IChsb25nIGxvbmcpKDQpIH0gfSwKLSAgICB7ICJDT05TVF9WQUxVRV84IiwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNp
YywgeyAobG9uZyBsb25nKSg4KSB9IH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfOSIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5z
aWMsIHsgKGxvbmcgbG9uZykoLTEpIH0gfSwKLSAgICB7ICJDT05TVF9WQUxVRV8xMSIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIHsgKGxvbmcgbG9uZykoMHhmZmZmZmZmZikgfSB9LAotICAgIHsgIkNPTlNUX1ZBTFVF
XzEyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRl
Z2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgweDAxKSB9IH0sCi0gICAgeyAiQ09OU1Rf
VkFMVUVfMTMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFu
dEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDBYMjApIH0gfSwKLSAgICB7ICJD
T05TVF9WQUxVRV8xNCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNv
bnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMHgxYWJjKSB9IH0sCi0g
ICAgeyAiQ09OU1RfSkFWQVNDUklQVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMTUpIH0g
fSwKLSAgICB7ICJyZWFkb25seSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMCkgfSB9LAor
ICAgIHsgIkNPTlNUX1ZBTFVFXzAiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDApIH0gfSwK
KyAgICB7ICJDT05TVF9WQUxVRV8xIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0
ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0s
CisgICAgeyAiQ09OU1RfVkFMVUVfMiIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMikgfSB9
LAorICAgIHsgIkNPTlNUX1ZBTFVFXzQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDQpIH0g
fSwKKyAgICB7ICJDT05TVF9WQUxVRV84IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSg4KSB9
IH0sCisgICAgeyAiQ09OU1RfVkFMVUVfOSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoLTEp
IH0gfSwKKyAgICB7ICJDT05TVF9WQUxVRV8xMSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZyko
MHhmZmZmZmZmZikgfSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAo
bG9uZyBsb25nKSgweDAxKSB9IH0sCisgICAgeyAiQ09OU1RfVkFMVUVfMTMiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2lj
LCB7IChsb25nIGxvbmcpKDBYMjApIH0gfSwKKyAgICB7ICJDT05TVF9WQUxVRV8xNCIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIHsgKGxvbmcgbG9uZykoMHgxYWJjKSB9IH0sCisgICAgeyAiQ09OU1RfSkFWQVNDUklQ
VCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdl
ciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMTUpIH0gfSwKKyAgICB7ICJyZWFkb25seSIs
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwg
Tm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsgMjU2LCA1MTEsIHRydWUsIEpTVGVz
dE9iajo6aW5mbygpLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0T2JqUHJv
dG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90b3R5cGUp
IH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RPYmpQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0T2JqOjppbmZvKCksIEpTVGVzdE9i
alByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnbG9iYWxPYmplY3Qo
KS0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIGJvb2wgaGFzRGlzYWJsZWRSdW50
aW1lUHJvcGVydGllcyA9IGZhbHNlOworI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5h
YmxlZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOwor
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIp
LCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSk7CisgICAgICAgIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdu
b3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAg
ICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoISh3b3JsZEZvckRPTU9iamVj
dCgqdGhpcykuc29tZVdvcmxkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50
aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpLCBzdHJsZW4oImVu
YWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIikpOworICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBz
bG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0
KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorICAgIGlmICghd29ybGRGb3JET01PYmpl
Y3QoKnRoaXMpLnNvbWVXb3JsZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3Bl
cnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigid29ybGRTcGVjaWZp
Y01ldGhvZCIpLCBzdHJsZW4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSk7CisgICAgICAgIFZNOjpE
ZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6
SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7Cisg
ICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVD
b250ZXh0KCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7
CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSwg
c3RybGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9w
ZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29u
ZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpT
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICB9CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2Vj
cmV0Qm9vbGVhbiIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNp
ZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIGlmICghKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNv
bnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RG
ZWF0dXJlRW5hYmxlZCgpKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVz
ID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbiIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsKKyAg
ICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNs
b3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorICAgIGlmICghanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9w
ZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dGdW5jdGlvbiIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3Bl
IHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwor
ICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
IH0KKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAg
ICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iKSwgc3Ry
bGVuKCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisgICAgaWYgKCEoanNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2Vj
dXJlQ29udGV4dCgpfHwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFsbG93c01lZGlhRGV2aWNlcygpKSkgeworICAg
ICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1ZTsKKyAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIm1lZGlhRGV2aWNlcyIpLCBzdHJsZW4oIm1lZGlhRGV2aWNlcyIpKTsK
KyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0
eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2Jh
bE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQorICAgIGlmICghKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkudGVzdEZlYXR1cmVFbmFibGVkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS50ZXN0RmVhdHVyZTFFbmFibGVkKCkpKSB7CisgICAgICAgIGhhc0Rpc2FibGVk
UnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVs
ZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0
aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYK
KyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgaGFzRGlzYWJs
ZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlIiksIHN0cmxlbigiY29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVD
b25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIH0KKyAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckdsb2JhbFNj
b3BlKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7Cisg
ICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2Vy
QXR0cmlidXRlIiksIHN0cmxlbigiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0
ZSIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQ
cm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyAgICBpZiAoaGFz
RGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkp
CisgICAgICAgIGZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KHZtKTsKKyAgICBwdXREaXJlY3Qodm0s
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1l
cygpLnByaXZhdGVNZXRob2RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCgpLCAwLCBTdHJpbmcoKSwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHJp
dmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVibGljQW5k
UHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9wdWJsaWNB
bmRQcml2YXRlTWV0aG9kKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0KCktPmFycmF5UHJvdG90eXBl
KCktPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudmFsdWVz
UHJpdmF0ZU5hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOwogICAgIGFkZFZhbHVlSXRlcmFibGVNZXRob2RzKCpnbG9iYWxPYmpl
Y3QoKSwgKnRoaXMpOwogICAgIEpTT2JqZWN0JiB1bnNjb3BhYmxlcyA9ICpjb25zdHJ1Y3RFbXB0
eU9iamVjdChnbG9iYWxPYmplY3QoKS0+dm0oKSwgZ2xvYmFsT2JqZWN0KCktPm51bGxQcm90b3R5
cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgdW5zY29wYWJsZXMucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidW5kZWZpbmVkTWV0aG9kIiksIGpzQm9vbGVhbih0cnVl
KSk7CiAgICAgdW5zY29wYWJsZXMucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAic2hvcnRBdHRyIiksIGpzQm9vbGVhbih0cnVlKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuc2NvcGFibGVzU3ltYm9sLCAmdW5z
Y29wYWJsZXMsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJB
TlNJVElPTigpOwotICAgIHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1l
KCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcy0+Z2xvYmFsT2JqZWN0KCksIDEsICJwcml2
YXRlTWV0aG9kIl9zLCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9wcml2YXRlTWV0aG9kKSk7
Ci0gICAgcHV0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpLT5idWlsdGluTmFtZXMoKS5wdWJsaWNBbmRQcml2YXRlTWV0aG9kUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLT5nbG9iYWxPYmplY3QoKSwgMSwgInB1Ymxp
Y0FuZFByaXZhdGVNZXRob2QiX3MsIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3B1YmxpY0Fu
ZFByaXZhdGVNZXRob2QpKTsKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIGlmIChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgp
KQotICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNs
aWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZW5hYmxlZEF0UnVudGlt
ZVByaXZhdGVBdHRyUHJpdmF0ZU5hbWUoKSwgRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGpzVGVzdE9ial9lbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHIsIHNldEpTVGVzdE9i
al9lbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHIsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBK
U1Rlc3RPYmo6OmluZm8oKSwgbnVsbHB0ciB9KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nl
c3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVp
bHRpbk5hbWVzKCkuZW5hYmxlZEF0UnVudGltZVByaXZhdGVSZWFkT25seUF0dHJQcml2YXRlTmFt
ZSgpLCBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0T2JqX2VuYWJs
ZWRBdFJ1bnRpbWVQcml2YXRlUmVhZE9ubHlBdHRyLCBudWxscHRyLCBET01BdHRyaWJ1dGVBbm5v
dGF0aW9uIHsgSlNUZXN0T2JqOjppbmZvKCksIG51bGxwdHIgfSksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpOwotI2VuZGlmCiB9
CiAKLS8qIEhhc2ggdGFibGUgZm9yIEluc3RhbmNlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpJbnN0YW5jZVRhYmxlSW5kZXhbMTZdID0gewotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgMSwgLTEgfSwKLSAgICB7IDIs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQotCi1zdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqSW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7
ICJ1bmZvcmdlYWJsZUF0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpfdW5mb3JnZWFibGVBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotI2lmIEVOQUJM
RShDb25kaXRpb24xKQotICAgIHsgImNvbmRpdGlvbmFsQXR0cjQiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9jb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0jZWxzZQotICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCi0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi0gICAgeyAiY29uZGl0aW9uYWxBdHRyNSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwK
LSNlbHNlCi0gICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKLSNlbmRpZgotI2lm
IEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICB7ICJjb25kaXRp
b25hbEF0dHI2Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
bnVsbHB0cikgfSB9LAotI2Vsc2UKLSAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9
LAotI2VuZGlmCi0gICAgeyAidW5mb3JnZWFibGVNZXRob2QiLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uX3Vu
Zm9yZ2VhYmxlTWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAotfTsKLQotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZSBKU1Rlc3RPYmpJbnN0YW5jZVRhYmxlID0geyA1LCAxNSwgdHJ1ZSwgSlNUZXN0
T2JqOjppbmZvKCksIEpTVGVzdE9iakluc3RhbmNlVGFibGVWYWx1ZXMsIEpTVGVzdE9iakluc3Rh
bmNlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZvID0geyAi
VGVzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RPYmpJbnN0YW5jZVRhYmxlLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iaikgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U1Rlc3RPYmo6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
T2JqVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqKSB9OwogCiBK
U1Rlc3RPYmo6OkpTVGVzdE9iaihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RPYmo+JiYgaW1wbCkKICAgICA6IEpTRE9NV3JhcHBl
cjxUZXN0T2JqPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkKQEAgLTQ4
ODMsNzQgKzQxNDgsNiBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2N1
c3RvbUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbAogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9jdXN0b21BdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsIGF0dHJpYnV0ZU5h
bWUpOwogfQogCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZVByaXZhdGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCi17Ci0gICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvJiBpbXBsID0gdGhp
c09iamVjdC53cmFwcGVkKCk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxl
ZEF0UnVudGltZVByaXZhdGVBdHRyKCkpKSk7Ci19Ci0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZVByaXZhdGVBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIGF0dHJpYnV0ZU5hbWUpKQotewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ial9lbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGF0dHJpYnV0ZU5hbWUpOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVQcml2
YXRlQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgp
OwotICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHZhbHVlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNl
KTsKLSAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0gewotICAgICAgICByZXR1cm4gaW1wbC5z
ZXRFbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHIoV1RGTW92ZShuYXRpdmVWYWx1ZSkpOwotICAg
IH0pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQotewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9lbmFibGVkQXRS
dW50aW1lUHJpdmF0ZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Ci19Ci0KLSNlbmRpZgotCi0jaWYgRU5BQkxF
KFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfZW5hYmxlZEF0
UnVudGltZVByaXZhdGVSZWFkT25seUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKLXsKLSAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBw
ZWQoKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRp
bWVQcml2YXRlUmVhZE9ubHlBdHRyKCkpKSk7Ci19Ci0KLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZVByaXZhdGVSZWFkT25seUF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCi17Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRlUmVhZE9ubHlB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRyaWJ1dGVOYW1lKTsKLX0KLQotI2VuZGlmCi0KLSNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRlU3RhdGljUmVhZE9ubHlBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQotewotICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhyb3dTY29wZSwg
VGVzdE9iajo6ZW5hYmxlZEF0UnVudGltZVByaXZhdGVTdGF0aWNSZWFkT25seUF0dHIoKSkpKTsK
LX0KLQotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJs
ZWRBdFJ1bnRpbWVQcml2YXRlU3RhdGljUmVhZE9ubHlBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IGF0dHJpYnV0ZU5hbWUpKQotewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVQcml2YXRlU3Rh
dGljUmVhZE9ubHlBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBh
dHRyaWJ1dGVOYW1lKTsKLX0KLQotI2VuZGlmCi0KIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpfb25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CkBAIC02OTQ5LDI4ICs2MTQ2LDYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2N1c3RvbU1ldGhvZFdpdGhBcmdzLCAoSlNHbG8KICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fY3VzdG9tTWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImN1c3RvbU1ldGhvZFdpdGhBcmdzIik7CiB9CiAKLSNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZVByaXZhdGVTdGF0aWNNZXRob2RCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1l
KTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0g
ICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCk7Ci0gICAgYXV0byBsb25nQXJnID0gY29udmVydDxJRExMb25nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjplbmFibGVkQXRSdW50aW1lUHJpdmF0ZVN0
YXRpY01ldGhvZChXVEZNb3ZlKGxvbmdBcmcpKSkpKTsKLX0KLQotSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZVByaXZh
dGVTdGF0aWNNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRp
bWVQcml2YXRlU3RhdGljTWV0aG9kQm9keSwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQXRSdW50aW1lUHJp
dmF0ZVN0YXRpY01ldGhvZCIpOwotfQotCi0jZW5kaWYKLQogc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ByaXZhdGVNZXRob2RCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwCmlu
ZGV4IGNmYzAyMTEwZDE1OTQyZmI0MmM3MTFlNWE4MTU4ZjI2NzRhZGQyMzkuLmE5NThkMjQ5ZDYw
N2YwNTE0MmQ2NWM2NTk2NTgxYmVkZTU2MTZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJh
dGlvbkNvbmRpdGlvbmFsLmNwcApAQCAtOTUsMTQgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlLCBKU1Rl
c3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbD47CiAKLXRlbXBsYXRlPD4gY29u
c3QgdW5zaWduZWQgSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxET01Db25zdHJ1Y3Rvcjo6U3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxET01D
b25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTExOCwxOSArMTE1LDcg
QEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0
b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFYKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRh
YmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlVGFibGVJbmRleFs4XSA9IHsK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMiwgLTEg
fSwKLSAgICB7IDEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
IAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CkBAIC0xNDcsOCArMTMyLDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVUYWJsZSA9IHsgMywgNywgdHJ1ZSwgSlNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWw6OmluZm8oKSwgSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQ
cm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVU
YWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsICZCYXNlOjpz
X2luZm8sICZKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZVRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggMDIwNTJmMDEzZTRiZDY3NjUzOGQyOGVjY2Vk
Y2E1ODEyNjk3ZmI0YS4uOTgwZWZlM2I4MTM4ZjhkZWY1N2UxYzZkODNkZDZiODhlZGIzM2MyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtODMs
OCArODMsNiBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJv
dG90eXBlOjpCYXNlKTsKIApAQCAtMjA5LDcgKzIwNyw2IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNECiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNE
T01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3Ry
dWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTIyNSwyMSArMjIyLDE0IEBA
IHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0
b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJs
ZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRl
eCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9y
IHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0
cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczo6aW5mbygpLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBl
VGFibGVWYWx1ZXMsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGVUYWJsZUlu
ZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMiLCAmQmFzZTo6c19p
bmZvLCAmSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZVRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5
cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3Bw
CmluZGV4IDI1ODYzZjIzYmZhNGZjODY4ZWQ4NTdiNjExZWU0ZDM1ZDg2MDY5OTkuLmY2NzdlODEy
YWU4ZGFlNjRmOTJiMDE2ZGRkOGQ1YWU4ZGM1Yjk0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKQEAgLTgy
LDggKzgyLDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZVByb3RvdHlwZSwgSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZVByb3RvdHlwZTo6QmFzZSk7CiAKQEAgLTE1Miw3ICsxNTAs
NiBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzVwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJ
T04oSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yQ29u
c3RydWN0LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlRE9NQ29uc3Ry
dWN0b3I6OmNvbnN0cnVjdCk7CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURP
TUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xNjgsMjEgKzE2NSwxNCBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNv
bnN0cnVjdG9yOjppbml0aWFsaQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9y
IFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZVByb3RvdHlwZVRhYmxlSW5kZXhb
Ml0gPSB7Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIC0xIH0sCi19OwotCisvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0
IEhhc2hUYWJsZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90
eXBlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2U6OmluZm8oKSwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZVByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIiwgJkJhc2U6OnNfaW5mbywgJkpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGVUYWJsZSwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5J
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFBsdWdpbkludGVyZmFjZS5jcHAKaW5kZXggZTQzMGYxMTc4M2QzMjlkMmM3NTdkMGI0NWEz
N2M1Nzg5ZmQ3NDJiYS4uYWQ1ZTFkN2EzYjgwYjBkMWY5N2U3NWJkMjhlYzc1YjEzMmU0YmFkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFBsdWdpbkludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKQEAgLTc4LDE0ICs3OCwxMSBAQCBw
cml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFU
SUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90
b3R5cGUsIEpTVGVzdFBsdWdpbkludGVyZmFjZVByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpT
VGVzdFBsdWdpbkludGVyZmFjZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGU8SlNUZXN0UGx1Z2luSW50ZXJmYWNlPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1
bnNpZ25lZCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdFBsdWdpbkludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0UGx1Z2lu
SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxh
dGU8PiBKU1ZhbHVlIEpTVGVzdFBsdWdpbkludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0xMDEsMjEgKzk4LDE0IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RQbHVn
aW5JbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtCiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90
b3R5cGVUYWJsZUluZGV4WzJdID0gewotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAot
fTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
IHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0UGx1Z2luSW50ZXJmYWNlQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdFBsdWdp
bkludGVyZmFjZVByb3RvdHlwZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Rlc3RQbHVnaW5JbnRl
cmZhY2U6OmluZm8oKSwgSlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMs
IEpTVGVzdFBsdWdpbkludGVyZmFjZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RQbHVn
aW5JbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90
eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UGx1Z2luSW50ZXJm
YWNlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFBsdWdpbkludGVyZmFjZVBy
b3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFBsdWdpbkludGVyZmFjZSIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UGx1Z2luSW50ZXJm
YWNlUHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdFBsdWdpbkludGVyZmFjZVByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50LmNwcAppbmRleCBlNGQwMzI4MDRkNzUyNDliNWNmNzJlMTExYWRmOTJmNDA5YzQ0
NTUwLi4yNTBjMTJlMDNiNzZjYzcwZDMwYjQyODZiZjRmM2FlMGI1YmE4YzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcApAQCAtMTYyLDggKzE2Miw2IEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFByb3RvdHlwZSwgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlOjpCYXNl
KTsKIApAQCAtMTk0LDcgKzE5Miw2IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPCiB9CiBKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRET01Db25z
dHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0
b3I6OmNvbnN0cnVjdCk7CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3IpIH07CiAKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRET01Db25zdHJ1Y3Rv
cjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAtMjA5LDMwICsyMDYsMTYgQEAgdGVtcGxhdGU8PiB2b2lk
IEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJv
cGVydGllcygKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMiksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUg
Ki8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudFByb3RvdHlwZVRhYmxlSW5kZXhbOV0gPSB7Ci0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIDggfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgMiwgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwog
CiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgInBy
b21pc2UiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudF9wcm9taXNlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4obnVsbHB0cikgfSB9LAotICAgIHsgInJlYXNvbiIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50X3JlYXNvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJwcm9taXNl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudF9wcm9taXNlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInJlYXNvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRf
cmVhc29uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRQcm90b3R5cGVUYWJsZSA9IHsgMywgNywgdHJ1ZSwgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50OjppbmZvKCksIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3Rv
dHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGVUYWJs
ZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiwgJkJhc2U6OnNf
aW5mbywgJkpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlwZVRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlw
ZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudFByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRP
bmx5TWFwTGlrZS5jcHAKaW5kZXggOTMwMjI5MDQ3YjdhMzQ2ODk5MDU1YzVkYWFkOTE2ZTEwM2U3
MjBjNC4uM2EyZGQyMWY4OTg1MmRjYzc2ZTc5NDk3NjA3MzY0MGZhOGQxNDEwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5
TWFwTGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAKQEAgLTkzLDE0ICs5MywxMSBAQCBwcml2YXRlOgog
ICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJU
X0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGUsIEpT
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZTo6QmFzZSk7CiAKIHVzaW5nIEpTVGVzdFJlYWRP
bmx5TWFwTGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25lZCBK
U1Rlc3RSZWFkT25seU1hcExpa2VET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRP
bmx5TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0UmVhZE9ubHlNYXBMaWtl
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3RSZWFkT25seU1hcExpa2VET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdFJlYWRPbmx5TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CkBAIC0xMTYsNTIgKzExMywyNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0UmVhZE9ubHlNYXBM
aWtlRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bQogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlVGFi
bGVJbmRleFsxOF0gPSB7Ci0gICAgeyAxLCAxNyB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDcsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IDAsIDE2IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDQsIC0xIH0sCi0gICAgeyA2LCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJv
dG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZWFkT25seU1h
cExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAic2l6
ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nvciwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RSZWFkT25seU1hcExpa2Vfc2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJn
ZXQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dl
dCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJoYXMiLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyksIChpbnRwdHJfdCkgKDEpIH0gfSwK
LSAgICB7ICJlbnRyaWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImtleXMiLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAic2l6ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFJlYWRPbmx5
TWFwTGlrZV9zaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgImdldCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9nZXQpLCAo
aW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJp
ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9r
ZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiZm9yRWFjaCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0g
fSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlVGFibGUgPSB7IDgsIDE1LCB0cnVlLCBKU1Rlc3RSZWFkT25seU1hcExpa2U6OmluZm8o
KSwgSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFJlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RSZWFkT25seU1hcExpa2Ui
LCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlVGFibGUsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdFJlYWRPbmx5TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
KSB9OwogCiB2b2lkIEpTVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0
YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFJlYWRPbmx5TWFwTGlrZTo6aW5mbygpLCBKU1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwotICAgIGF1dG8mIGVu
dHJpZXMgPSB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFt
ZSgpOwotICAgIHJlaWZ5U3RhdGljUHJvcGVydHkodm0sIG51bGxwdHIsIGVudHJpZXMsICppbmZv
KCktPnN0YXRpY1Byb3BIYXNoVGFibGUtPmVudHJ5KGVudHJpZXMpLCAqdGhpcyk7Ci0gICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3lt
Ym9sLCBnZXREaXJlY3Qodm0sIGVudHJpZXMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfVE9fU1RSSU5H
X1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRM
aWtlLmNwcAppbmRleCBjYzRiYWQyOTA0Y2I1YTgzN2FkNjAzM2UwNDZkNTljOWIwNGNjMTBlLi44
ZmFiZmQ4ZTg4ZjRmNDRiMTM0NDE3Nzk5ZDJmMGUzY2NlZWYzOTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UmVhZE9ubHlTZXRMaWtlLmNwcApAQCAtOTIsMTQgKzkyLDExIEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSwgSlNUZXN0UmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0UmVhZE9ubHlTZXRM
aWtlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rl
c3RSZWFkT25seVNldExpa2U+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdFJl
YWRPbmx5U2V0TGlrZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UmVhZE9ubHlTZXRM
aWtlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RSZWFkT25seVNldExpa2UiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJl
YWRPbmx5U2V0TGlrZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNU
ZXN0UmVhZE9ubHlTZXRMaWtlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEx
NSw1MSArMTEyLDI2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RSZWFkT25seVNldExpa2VET01D
b25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJsZUluZGV4
WzE4XSA9IHsKLSAgICB7IDEsIDE3IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDQsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAtMSwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIDE2
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMs
IC0xIH0sCi0gICAgeyA1LCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZWFkT25seVNldExpa2VQ
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAic2l6ZSIsIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RSZWFkT25seVNldExpa2Vfc2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJoYXMiLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9
LAotICAgIHsgImtleXMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0g
fSwKKyAgICB7ICJzaXplIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0UmVhZE9u
bHlTZXRMaWtlX3NpemUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyks
IChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2Vu
dHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bl9rZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZm9yRWFjaCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5
cGVGdW5jdGlvbl9mb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGljIGNv
bnN0IEhhc2hUYWJsZSBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJsZSA9IHsgNywg
MTUsIHRydWUsIEpTVGVzdFJlYWRPbmx5U2V0TGlrZTo6aW5mbygpLCBKU1Rlc3RSZWFkT25seVNl
dExpa2VQcm90b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
VGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdFJlYWRPbmx5U2V0TGlrZSIsICZCYXNlOjpzX2luZm8sICZK
U1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0UmVhZE9u
bHlTZXRMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwg
SlNUZXN0UmVhZE9ubHlTZXRMaWtlOjppbmZvKCksIEpTVGVzdFJlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgYXV0byYgZW50cmllcyA9IHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCk7Ci0gICAgcmVpZnlTdGF0
aWNQcm9wZXJ0eSh2bSwgbnVsbHB0ciwgZW50cmllcywgKmluZm8oKS0+c3RhdGljUHJvcEhhc2hU
YWJsZS0+ZW50cnkoZW50cmllcyksICp0aGlzKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwg
ZW50cmllcyksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JT
eW1ib2wsIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50
cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJ
VElPTigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3Bw
CmluZGV4IGJmMDM1ZTA1NjEyMzAxN2Q1YzEzY2IxYmNjMmM3ZWU0M2M4ZWU0ZGUuLjg1MGExMDNk
YWM4MDU2NzgwNjBkZGFkYTRjYjNiNmMxMGExNzBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3BwCkBAIC03NywxNCArNzcsMTEgQEAgcHJpdmF0ZToKICAg
ICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0UHJvdG90eXBl
LCBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBK
U1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdD47CiAKLXRlbXBs
YXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0RE9NQ29uc3Ry
dWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0RE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpAQCAt
MTAwLDIxICs5NywxNCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0RE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKAogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9
CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0UHJvdG90eXBlVGFi
bGVJbmRleFsyXSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLX07Ci0KKy8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7
CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5cGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjppbmZvKCksIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dFByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5
cGVUYWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0IiwgJkJh
c2U6OnNfaW5mbywgJkpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdFByb3RvdHlwZVRhYmxlLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdFBy
b3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdFByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXgg
MWQzNWRiZTRjMWE5NzZkYTI5MDM4MzA2N2Y0MmM1MDQzNmZiNWU0Mi4uODZkYmY0MTE2YzI4MGQ5
Y2I1MDliZTdlMDQwZTE2ZGYyZDY1YThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTEwMywxNCArMTAzLDExIEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVByb3RvdHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OwogCi10ZW1wbGF0ZTw+IGNv
bnN0IHVuc2lnbmVkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZURPTUNvbnN0
cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZURPTUNvbnN0cnVjdG9yKSB9Owog
CiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEyNiw0NCArMTIzLDIxIEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VET01Db25z
dHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBm
b3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVUYWJsZUluZGV4WzE4
XSA9IHsKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDIsIDE2IH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IDQsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDAsIDE3IH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEsIC0xIH0sCi0gICAgeyA2LCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNSwgLTEg
fSwKLSAgICB7IDcsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
IAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9y
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKLSAgICB7ICJ2YWx1ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1ZSkgfSB9LAotICAgIHsgInJlYWRvbmx5VmFsdWUi
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV9yZWFkb25seVZh
bHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4obnVsbHB0cikgfSB9LAotICAgIHsgImNhY2hlZFZhbHVlIiwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFZh
bHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFZhbHVlKSB9
IH0sCi0gICAgeyAicG9ydHMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZV9wb3J0cyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJjYWNoZWRSZWFkb25seVZhbHVlIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VfY2FjaGVkUmVhZG9u
bHlWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJ2YWx1ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlX3ZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
X3ZhbHVlKSB9IH0sCisgICAgeyAicmVhZG9ubHlWYWx1ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VfcmVhZG9ubHlW
YWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKKyAgICB7ICJjYWNoZWRWYWx1ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlX2NhY2hlZFZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlX2NhY2hlZFZhbHVlKSB9IH0sCisgICAgeyAicG9ydHMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX3BvcnRzKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSB9LAorICAgIHsgImNhY2hlZFJlYWRvbmx5VmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFJlYWRv
bmx5VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9IH0sCiAgICAgeyAiZnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2Z1bmN0aW9uKSwgKGludHB0cl90KSAoMSkg
fSB9LAogICAgIHsgImZ1bmN0aW9uUmV0dXJuaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9mdW5jdGlvblJldHVybmluZyksIChpbnRwdHJf
dCkgKDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlVGFibGUgPSB7IDgsIDE1LCB0cnVlLCBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmluZm8oKSwgSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OnNfaW5m
byA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZv
LCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlVGFibGUsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90
eXBlKSB9OwogCiB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCmluZGV4IDRk
NDQ2NWQ1YTY2ZGJmZjVmMmU1ODIwNDZlMGNkNWY1ZGQxZDRhMDguLjkzMmMwMzZhZTYwN2JhMDUx
MTc4MWIwOTk5YTMxM2ZiY2Q2MDBjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAKQEAgLTk1LDE0ICs5
NSwxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RTZXRMaWtlUHJv
dG90eXBlLCBKU1Rlc3RTZXRMaWtlUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0U2V0
TGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNU
ZXN0U2V0TGlrZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0U2V0TGlrZURP
TUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2V0TGlrZURPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0U2V0TGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2V0TGlrZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0U2V0TGlrZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCkBAIC0xMTgsNzAgKzExNSwyOSBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U2V0TGlrZURP
TUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NRwogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0U2V0TGlrZVByb3RvdHlwZVRhYmxlSW5k
ZXhbMzRdID0gewotICAgIHsgNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNCwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgOSwgLTEgfSwKLSAgICB7
IDEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyA2LCAzMyB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCAzMiB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyA4LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAzLCAtMSB9LAotICAgIHsg
NywgLTEgfSwKLX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U2V0TGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzW10g
PQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXRMaWtlQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCi0gICAgeyAic2l6ZSIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXRMaWtlX3NpemUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9
IH0sCi0gICAgeyAiaGFzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25faGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImVudHJpZXMiLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90KSAoMCkg
fSB9LAotICAgIHsgImtleXMiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbl9rZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInZhbHVlcyIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlcyksIChpbnRwdHJfdCkgKDAp
IH0gfSwKLSAgICB7ICJmb3JFYWNoIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJhZGQiLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9hZGQpLCAoaW50cHRyX3QpICgx
KSB9IH0sCi0gICAgeyAiY2xlYXIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbl9jbGVhciksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJkZWxldGUiLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9kZWxldGUpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCisgICAgeyAic2l6ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dFNldExpa2Vfc2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJoYXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyksIChpbnRwdHJf
dCkgKDEpIH0gfSwKKyAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRyX3QpICgwKSB9
IH0sCisgICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwK
KyAgICB7ICJhZGQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2FkZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJj
bGVhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25fY2xlYXIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZGVsZXRl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbl9kZWxldGUpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29u
c3QgSGFzaFRhYmxlIEpTVGVzdFNldExpa2VQcm90b3R5cGVUYWJsZSA9IHsgMTAsIDMxLCB0cnVl
LCBKU1Rlc3RTZXRMaWtlOjppbmZvKCksIEpTVGVzdFNldExpa2VQcm90b3R5cGVUYWJsZVZhbHVl
cywgSlNUZXN0U2V0TGlrZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RTZXRMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U2V0TGlrZSIsICZCYXNlOjpz
X2luZm8sICZKU1Rlc3RTZXRMaWtlUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0U2V0TGlrZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rl
c3RTZXRMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U2V0TGlrZSIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2V0TGlrZVBy
b3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTZXRMaWtlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNUZXN0U2V0TGlrZTo6aW5mbygpLCBKU1Rlc3RTZXRMaWtlUHJv
dG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKLSAgICBhdXRvJiBlbnRyaWVzID0gdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKTsKLSAgICByZWlmeVN0
YXRpY1Byb3BlcnR5KHZtLCBudWxscHRyLCBlbnRyaWVzLCAqaW5mbygpLT5zdGF0aWNQcm9wSGFz
aFRhYmxlLT5lbnRyeShlbnRyaWVzKSwgKnRoaXMpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZt
LCBlbnRyaWVzKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRv
clN5bWJvbCwgZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5l
bnRyaWVzUHVibGljTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFO
U0lUSU9OKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAppbmRleCBhOTYyZjVkMDE1MTNjMjU5MjBhNjc3ZjI0MGVh
MGUzM2MxZDRmOTJlLi5hYjJiMzdkYTRmNGRkMjhiMDhhYWMxYjAwODBhZTFiNDczNTVlMTMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnMuY3BwCkBAIC05OSwxNCArOTksMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZSwgSlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZTo6QmFzZSk7CiAKIHVz
aW5nIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvcikgfTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQpAQCAtMTIyLDcwICsxMTksMjkgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6
ZVAKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNoIHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQot
c3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZUluZGV4WzM0XSA9IHsKLSAgICB7IDcsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgNCwgLTEgfSwKLSAgICB7IDMsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgMzMgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgMCwgMzIgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgOSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7
IC0xLCAtMSB9LAotICAgIHsgNSwgLTEgfSwKLSAgICB7IDgsIC0xIH0sCi19OwotCisvKiBIYXNo
IHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImFkZCIsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNfYWRkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19hZGQpIH0gfSwK
LSAgICB7ICJzaXplIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNf
c2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KG51bGxwdHIpIH0gfSwKKyAgICB7ICJhZGQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNfYWRkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19hZGQp
IH0gfSwKKyAgICB7ICJzaXplIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19zaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgImRlbGV0ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2Rl
bGV0ZSksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJoYXMiLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXMpLCAo
aW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50cmllcyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAia2V5cyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24sIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRy
X3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0cl90
KSAoMCkgfSB9LAotICAgIHsgImZvckVhY2giLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoKSwgKGludHB0cl90
KSAoMSkgfSB9LAotICAgIHsgImNsZWFyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fY2xlYXIpLCAoaW50cHRyX3QpICgw
KSB9IH0sCisgICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXMp
LCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlz
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fdmFs
dWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAi
Y2xlYXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2NsZWFyKSwgKGludHB0cl90
KSAoMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlVGFibGUgPSB7IDEwLCAzMSwgdHJ1ZSwgSlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6aW5mbygpLCBKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZUluZGV4IH07Ci1jb25zdCBD
bGFzc0luZm8gSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZTo6
c19pbmZvID0geyAiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCAmQmFzZTo6
c19pbmZvLCAmSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRh
YmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmluZm8oKSwgSlNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgYXV0
byYgZW50cmllcyA9IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJs
aWNOYW1lKCk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0eSh2bSwgbnVsbHB0ciwgZW50cmllcywg
KmluZm8oKS0+c3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkoZW50cmllcyksICp0aGlzKTsKLSAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0
b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgZW50cmllcyksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19UT19T
VFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
LmNwcAppbmRleCAzZmNkNjRkNDJhM2U5YWUxM2E4ZWRjYmMyZWZiNTA5MWFlZDNkZTk4Li4xN2E2
Mjg2YTdjOTZkODBkOGVmZjZlMTcyNGM3YTViMzE0MDcwZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllci5jcHAKQEAgLTgzLDE0ICs4MywxMSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSwgSlNUZXN0U3RyaW5naWZpZXJQcm90b3R5
cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RTdHJpbmdpZmllckRPTUNvbnN0cnVjdG9yID0gSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZpZXI+OwogCi10ZW1w
bGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3I6OlN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
U3RyaW5naWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCkBAIC0xMDYsMTUgKzEwMyw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmll
ckRPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTCiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25z
dCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZVRhYmxl
SW5kZXhbNF0gPSB7Ci0gICAgeyAxLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUg
Ki8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyUHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CiB7CkBAIC0xMjIsOCArMTExLDcgQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAg
ICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJp
bmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpT
VGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdFN0cmlu
Z2lmaWVyOjppbmZvKCksIEpTVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpT
VGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXIiLCAm
QmFzZTo6c19pbmZvLCAmSlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSkgfTsKK2NvbnN0
IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFN0
cmluZ2lmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTdHJp
bmdpZmllclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggZWI2
YzA3Y2JhNWFjOGI4ZjQzZDUxMDhiZmRjOWRlNWExNDgyYjZiMi4uN2NkNjc1YjhhODhhOGZhMDk4
OWMxMDgwZGYxZTYwZDc5YWIxNjkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCkBAIC04MywxNCArODMsMTEgQEAgcHJpdmF0
ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25Qcm90b3R5cGUsIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90
eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25E
T01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjsKIAotdGVtcGxhdGU8PiBjb25zdCB1bnNpZ25l
ZCBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkRPTUNvbnN0cnVjdG9yOjpTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25ET01Db25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbkRPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25ET01Db25zdHJ1Y3Rvcjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQpAQCAtMTA2LDE1ICsxMDMsNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25ET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6
ZVBybwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJl
cigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwot
Ci1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVUYWJsZUluZGV4WzRdID0gewotICAgIHsgMSwgLTEg
fSwKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsK
LQorLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZVRhYmxl
VmFsdWVzW10gPQogewpAQCAtMTIyLDggKzExMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZVRhYmxlVmFs
CiAgICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJv
dG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1zdGF0
aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJv
dG90eXBlVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uOjppbmZvKCksIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90
eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90
eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb25Qcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCmluZGV4IDUx
NWQwNmEzNjBhN2FlNGQyOTBmMjgyOWY3YjYxODdjNzJhYmEwNGEuLmY4NWY1MzhhMmY0OGY5MmIy
ZjJhMTk1Mzk1YjcyZTE4YTI1ZjNhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTg0LDE0ICs4NCwxMSBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90
eXBlLCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlOjpCYXNlKTsKIAog
dXNpbmcgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkRPTUNvbnN0cnVjdG9yID0gSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbj47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbkRPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkRPTUNvbnN0cnVjdG9yKSB9
OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkRP
TUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0xMDcsMTkgKzEwNCw3IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6
OmluaXRpYWxpemVQcm9wZXJ0CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3Ig
UHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rl
c3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlVGFibGVJbmRleFs4XSA9IHsKLSAg
ICB7IDEsIC0xIH0sCi0gICAgeyAwLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDIsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b25Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKQEAgLTEyOCw4ICsxMTMsNyBAQCBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZVRhYmxlVmFsdWVzWwogICAgIHsgInRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Qcm90b3R5cGVUYWJsZSA9IHsgMywgNywgdHJ1ZSwgSlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbjo6aW5mbygpLCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90
eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVU
YWJsZUluZGV4IH07Ci1jb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24i
LCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlw
ZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb25Qcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGUpIH07CiAK
IHZvaWQgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAppbmRleCAwYjUzNTc4NDQ1YzdiYjQ3MjFiZTFk
MWY5ZTM5YTAzZjIxNDIwMDg3Li44NDk1MGJlMTUzZDFkZjZmNGI0Y2M0MTU0MzE5MjcxNmI0Nzc2
MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzLmNwcApAQCAtODQsMTQgKzg0LDExIEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1By
b3RvdHlwZSwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBl
OjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVu
c2lnbmVkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0RPTUNvbnN0cnVj
dG9yOjpTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0RPTUNvbnN0cnVjdG9y
KSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTEwNywxOSArMTA0
LDcgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBc0RPTUNvbnN0cnVjdG9yOjppbml0aWFsaXoKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi0vKiBIYXNo
IHRhYmxlIGZvciBQcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZVRh
YmxlSW5kZXhbOF0gPSB7Ci0gICAgeyAxLCAtMSB9LAotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQorLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsK
QEAgLTEyOCw4ICsxMTMsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlVGFibAogICAgIHsgInRvU3Ry
aW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5j
dGlvbl90b1N0cmluZyksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBI
YXNoVGFibGUgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBl
VGFibGUgPSB7IDMsIDcsIHRydWUsIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBczo6aW5mbygpLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90
b3R5cGVUYWJsZVZhbHVlcywgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
UHJvdG90eXBlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90
b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5
cGUpIH07CiAKIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGQyMzhk
Y2I5OGFjODE0YzRjNDRiNmQ4ODEyODYxNTliZjYwZTM1YTQuLmU4MzdiYWI3NDA4NjQ4ZDQ3MmI2
MjJiNTI4Y2VhNTZhNTljZTIyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC04MywxNCArODMsMTEgQEAg
cHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiB9OwogU1RB
VElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nUHJvdG90eXBlLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdQcm90b3R5cGU6OkJhc2UpOwogCiB1c2luZyBKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZz47CiAKLXRl
bXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQpAQCAtMTA2LDE1ICsxMDMsNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nRE9NQ29uc3RydWN0b3I6OmluaXRpYWxpegogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nUHJvdG90eXBlVGFibGVJbmRleFs0XSA9IHsKLSAgICB7IDEsIC0xIH0sCi0gICAgeyAw
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLX07Ci0KKy8qIEhhc2gg
dGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CkBAIC0xMjIsOCArMTExLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZVRhYmwKICAgICB7
ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90
eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCi1zdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1By
b3RvdHlwZVRhYmxlID0geyAyLCAzLCB0cnVlLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmc6OmluZm8oKSwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nUHJvdG90eXBlVGFibGVWYWx1ZXMsIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ1Byb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlVGFibGUsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nUHJvdG90eXBlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
UHJvdG90eXBlKSB9OwogCiB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCmluZGV4IGQ0OGI0N2Q0
YWQ5NWFkZjNiYmIxOTg1ZTRiZDdkYjJhNThkNWM4NmMuLjEzMGNhMzQyNDZmNWEyZmM2NDRhNGQy
ZDdkYTRhZDUyZTA3YzI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKQEAgLTg1LDE0ICs4NSwxMSBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJv
dG90eXBlLCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlOjpCYXNl
KTsKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVj
dG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZURPTUNvbnN0cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CkBAIC0xMDgsMjkgKzEwNSwxNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcAogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZVByb3RvdHlwZVRhYmxlSW5kZXhbOF0gPSB7Ci0gICAgeyAxLCAtMSB9LAotICAgIHsgMCwgLTEg
fSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAyLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQorLyog
SGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJpZGVudGlmaWVyIiwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlX2lkZW50aWZpZXIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCisgICAgeyAiaWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlX2lkZW50aWZpZXIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAg
ICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5
cGVGdW5jdGlvbl90b1N0cmluZyksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKLXN0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlw
ZVRhYmxlID0geyAzLCA3LCB0cnVlLCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
OjppbmZvKCksIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVUYWJs
ZVZhbHVlcywgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZVRhYmxl
SW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZSIsICZCYXNlOjpzX2luZm8sICZKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJv
dG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Rlc3RT
dHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZVByb3RvdHlwZSkgfTsKIAogdm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAppbmRleCAwODcxYjEyNTA1
MjkwZDZkMjViZDZjMzg0MTI2ZDdiYjYwNDU5MmM0Li4yZmRmOWNjZDNkNjg2M2Y2ZGU4OThjMjIx
OWZhM2ZiMTY0NGY2NTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKQEAgLTg2LDE0ICs4NiwxMSBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotcHVibGljOgotICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVBy
b3RvdHlwZSwgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGU6OkJh
c2UpOwogCiB1c2luZyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZURPTUNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGU+OwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0b3I6OlN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCkBAIC0xMDksMjkgKzEwNiwxNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVET01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVBybwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0
aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZUluZGV4WzhdID0gewotICAgIHsgMSwgLTEgfSwKLSAg
ICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMiwg
LTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LX07Ci0KKy8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJpZGVu
dGlmaWVyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVfaWRlbnRpZmllciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlX2lkZW50aWZpZXIpIH0gfSwKKyAgICB7ICJpZGVudGlmaWVyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZV9pZGVudGlmaWVyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVfaWRlbnRpZmllcikgfSB9LAogICAgIHsgInRvU3RyaW5nIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nKSwg
KGludHB0cl90KSAoMCkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZVRhYmxlID0geyAzLCA3LCB0cnVl
LCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6aW5mbygpLCBKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIiwgJkJhc2U6OnNfaW5m
bywgJkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlVGFibGUsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGUp
IH07CiAKIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDFlNjlh
NzEyMGMwNDVmM2NmYzgxNTExOGM0OTBmMTRiOGNkZTM0MWUuLjBjYzY2ZTk3NWU5ZDI1MDY5YjUz
NGQ0Zjc3NGM5N2M3NzE5YTNlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMTMwLDEzICsx
MzAsMzIgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0VHlwZWRlZnNQ
cm90b3R5cGUsIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpCYXNlKTsKIAogdXNpbmcgSlNUZXN0
VHlwZWRlZnNET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3I8SlNUZXN0VHlwZWRlZnM+
OwogCisvKiBIYXNoIHRhYmxlICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1Rlc3RUeXBlZGVmc1RhYmxlSW5kZXhbMl0gPSB7CisgICAgeyAtMSwgLTEgfSwKKyAg
ICB7IC0xLCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
VHlwZWRlZnNUYWJsZVZhbHVlc1tdID0KK3sKKyAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAs
IDAgfSB9Cit9OworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdFR5cGVkZWZzVGFibGUg
PSB7IDAsIDEsIGZhbHNlLCBKU1Rlc3RUeXBlZGVmczo6aW5mbygpLCBKU1Rlc3RUeXBlZGVmc1Rh
YmxlVmFsdWVzLCBKU1Rlc3RUeXBlZGVmc1RhYmxlSW5kZXggfTsKKy8qIEhhc2ggdGFibGUgZm9y
IGNvbnN0cnVjdG9yICovCisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiVGVzdFN1Yk9iaiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcl9UZXN0U3ViT2JqKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorfTsKKwog
dGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0
VHlwZWRlZnNET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTY1LDcgKzE4NCw2IEBAIHRlbXBsYXRlPD4gRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdFR5cGVkZWZzRE9NQ29u
c3RydWN0b3I6CiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RUeXBlZGVmc0RP
TUNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RUeXBlZGVmc0RPTUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QpOwogCi10ZW1wbGF0ZTw+IGNvbnN0IHVuc2lnbmVkIEpTVGVzdFR5cGVkZWZzRE9NQ29u
c3RydWN0b3I6OlN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB0ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0VHlwZWRlZnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3RUeXBlZGVmc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCkBAIC0xNzksOTAgKzE5NywyMCBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0VHlwZWRlZnNE
T01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTQogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RUeXBlZGVmczo6
cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJUZXN0VHlwZWRlZnMiX3MpLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMyksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0
VHlwZWRlZnM6OmluZm8oKSwgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAq
dGhpcyk7CiB9CiAKLS8qIEhhc2ggdGFibGUgZm9yIFByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0VHlwZWRlZnNQcm90b3R5cGVUYWJsZUlu
ZGV4WzY3XSA9IHsKLSAgICB7IDIsIDY0IH0sCi0gICAgeyAxOSwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyA5LCA2NSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDUsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDEx
LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE4LCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDMsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAwLCA2NiB9LAotICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxNSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDYsIC0xIH0sCi0gICAgeyA4LCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IDE0LCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAyMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNCwgLTEgfSwKLSAgICB7IC0xLCAt
MSB9LAotICAgIHsgMTYsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAot
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsg
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxMCwgLTEgfSwKLSAgICB7IDEzLCAtMSB9LAotICAgIHsgMTcsIC0xIH0s
Ci19OwotCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAg
ICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCi0gICAgeyAidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RUeXBlZGVmc191bnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVk
ZWZzX3Vuc2lnbmVkTG9uZ0xvbmdBdHRyKSB9IH0sCi0gICAgeyAic2VyaWFsaXplZFNjcmlwdFZh
bHVlIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNfc2VyaWFs
aXplZFNjcmlwdFZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfc2VyaWFsaXplZFNjcmlwdFZhbHVlKSB9
IH0sCi0gICAgeyAiYXR0cmlidXRlV2l0aENsYW1wIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNf
YXR0cmlidXRlV2l0aENsYW1wKSB9IH0sCi0gICAgeyAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBl
ZGVmIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNfYXR0cmli
dXRlV2l0aENsYW1wSW5UeXBlZGVmKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1w
SW5UeXBlZGVmKSB9IH0sCi0gICAgeyAiYnVmZmVyU291cmNlQXR0ciIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX2J1ZmZlclNvdXJjZUF0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RU
eXBlZGVmc19idWZmZXJTb3VyY2VBdHRyKSB9IH0sCi0gICAgeyAiZG9tVGltZVN0YW1wQXR0ciIs
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX2RvbVRpbWVTdGFt
cEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyKSB9IH0sCisgICAgeyAidW5z
aWduZWRMb25nTG9uZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX3Vuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0VHlwZWRlZnNfdW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKKyAgICB7ICJzZXJpYWxpemVk
U2NyaXB0VmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5
cGVkZWZzX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkgfSB9LAorICAgIHsgImF0dHJpYnV0ZVdpdGhD
bGFtcCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfYXR0
cmlidXRlV2l0aENsYW1wKSB9IH0sCisgICAgeyAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVm
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVm
c19hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpIH0gfSwKKyAgICB7ICJidWZmZXJTb3VyY2VB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RUeXBlZGVmc19idWZmZXJTb3VyY2VBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfYnVmZmVy
U291cmNlQXR0cikgfSB9LAorICAgIHsgImRvbVRpbWVTdGFtcEF0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX2Rv
bVRpbWVTdGFtcEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyKSB9IH0sCiAg
ICAgeyAiZnVuYyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9mdW5jKSwgKGludHB0
cl90KSAoMCkgfSB9LAogICAgIHsgInNldFNoYWRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbl9zZXRTaGFkb3cpLCAoaW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0
aFNlcXVlbmNlQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhT
ZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKQEAgLTI3OSw4ICsyMjcsNyBAQCBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KICAgICB7ICJjYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9jYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5j
bHVkZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUg
SlNUZXN0VHlwZWRlZnNQcm90b3R5cGVUYWJsZSA9IHsgMjEsIDYzLCB0cnVlLCBKU1Rlc3RUeXBl
ZGVmczo6aW5mbygpLCBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZVRhYmxlVmFsdWVzLCBKU1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFR5cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdFR5cGVkZWZzUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUpIH07Citjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlw
ZWRlZnNQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmcyIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0VHlwZWRlZnNQcm90
b3R5cGUpIH07CiAKIHZvaWQgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSkKIHsKQEAgLTI4OSw3ICsyMzYsNyBAQCB2b2lkIEpTVGVzdFR5cGVkZWZzUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9V
VF9UUkFOU0lUSU9OKCk7CiB9CiAKLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmczo6c19p
bmZvID0geyAiVGVzdFR5cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RUeXBlZGVmcykgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U1Rlc3RUeXBlZGVmczo6c19pbmZvID0geyAiVGVzdFR5cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdFR5cGVkZWZzVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
VHlwZWRlZnMpIH07CiAKIEpTVGVzdFR5cGVkZWZzOjpKU1Rlc3RUeXBlZGVmcyhTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPFRlc3RUeXBl
ZGVmcz4mJiBpbXBsKQogICAgIDogSlNET01XcmFwcGVyPFRlc3RUeXBlZGVmcz4oc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5j
cHAKaW5kZXggNzQ1ODA1NDY2YTFhZDc5NTgwNWZhYTU2N2YzYTBiNjg0NThkZTg0Mi4uNDhhNmJk
NTRlMGM3YzlkZTAyNmE2MWQ1NWY5ODM1NjAxNDY2NWE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2Jh
bFNjb3BlLmNwcApAQCAtNjMsNyArNjMsNDEgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNXb3JrZXJHbG9iYWxTY29wZV9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG8KIAog
dXNpbmcgSlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU8SlNXb3JrZXJHbG9iYWxTY29wZT47CiAKLXRlbXBsYXRlPD4gY29u
c3QgdW5zaWduZWQgSlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworLyogSGFzaCB0YWJsZSAqLworCitzdGF0aWMg
Y29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNXb3JrZXJHbG9iYWxTY29wZVRhYmxlSW5k
ZXhbMThdID0geworICAgIHsgLTEsIC0xIH0sCisgICAgeyAwLCAxNiB9LAorICAgIHsgNSwgLTEg
fSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAg
ICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDMs
IC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAorICAgIHsgLTEsIC0xIH0s
CisgICAgeyAtMSwgLTEgfSwKKyAgICB7IDQsIC0xIH0sCisgICAgeyAtMSwgLTEgfSwKKyAgICB7
IDEsIDE3IH0sCisgICAgeyAyLCAtMSB9LAorfTsKKworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNXb3JrZXJHbG9iYWxTY29wZVRhYmxlVmFsdWVzW10gPQoreworICAgIHsgIkV4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNXb3JrZXJHbG9iYWxTY29wZV9FeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJU
ZXN0Tm9kZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNXb3JrZXJHbG9iYWxTY29wZV9UZXN0Tm9kZUNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorICAgIHsgIlRlc3RPYmplY3QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVf
VGVzdE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIlRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgIldvcmtlckdsb2JhbFNjb3BlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1dvcmtlckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
Cit9OworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVUYWJsZSA9
IHsgNiwgMTUsIHRydWUsIEpTV29ya2VyR2xvYmFsU2NvcGU6OmluZm8oKSwgSlNXb3JrZXJHbG9i
YWxTY29wZVRhYmxlVmFsdWVzLCBKU1dvcmtlckdsb2JhbFNjb3BlVGFibGVJbmRleCB9OwogdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJXb3JrZXJHbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0
cnVjdG9yKSB9OwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNXb3JrZXJHbG9iYWxTY29wZURPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC03OCw3ICsxMTIsNyBAQCB0ZW1wbGF0ZTw+
IHZvaWQgSlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVy
dGllcyhWTSYgdm0sCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90
eXBlICovCisvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTV29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGVUYWJsZUlu
ZGV4WzJdID0gewogICAgIHsgLTEsIC0xIH0sCkBAIC0xMDEsNDIgKzEzNSw3IEBAIHZvaWQgSlNX
b3JrZXJHbG9iYWxTY29wZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpT
Q19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi0vKiBIYXNoIHRhYmxl
IGZvciBJbnN0YW5jZSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXgg
SlNXb3JrZXJHbG9iYWxTY29wZUluc3RhbmNlVGFibGVJbmRleFsxOF0gPSB7Ci0gICAgeyAtMSwg
LTEgfSwKLSAgICB7IDAsIDE2IH0sCi0gICAgeyA1LCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAt
MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMywgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAotICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAg
IHsgNCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotICAgIHsgMSwgMTcgfSwKLSAgICB7IDIsIC0x
IH0sCi19OwotCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1dvcmtlckdsb2JhbFNj
b3BlSW5zdGFuY2VUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3ciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVfRXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNXb3JrZXJHbG9iYWxTY29wZV9UZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRyKSB9IH0sCi0gICAgeyAiVGVz
dE5vZGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdE5vZGVDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51
bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0T2JqZWN0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtlckdsb2JhbFNj
b3BlX1Rlc3RPYmplY3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KG51bGxwdHIpIH0gfSwKLSAgICB7ICJXb3JrZXJHbG9i
YWxTY29wZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNXb3JrZXJHbG9iYWxTY29wZV9Xb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4obnVsbHB0cikgfSB9LAotfTsKLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1dv
cmtlckdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZSA9IHsgNiwgMTUsIHRydWUsIEpTV29ya2VyR2xv
YmFsU2NvcGU6OmluZm8oKSwgSlNXb3JrZXJHbG9iYWxTY29wZUluc3RhbmNlVGFibGVWYWx1ZXMs
IEpTV29ya2VyR2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlSW5kZXggfTsKLWNvbnN0IENsYXNzSW5m
byBKU1dvcmtlckdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJXb3JrZXJHbG9iYWxTY29wZSIsICZC
YXNlOjpzX2luZm8sICZKU1dvcmtlckdsb2JhbFNjb3BlSW5zdGFuY2VUYWJsZSwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlKSB9OworY29uc3QgQ2xhc3NJ
bmZvIEpTV29ya2VyR2xvYmFsU2NvcGU6OnNfaW5mbyA9IHsgIldvcmtlckdsb2JhbFNjb3BlIiwg
JkJhc2U6OnNfaW5mbywgJkpTV29ya2VyR2xvYmFsU2NvcGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlKSB9OwogCiBKU1dvcmtlckdsb2JhbFNj
b3BlOjpKU1dvcmtlckdsb2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4mJiBpbXBsKQogICAgIDogSlNFdmVudFRhcmdldCh2bSwgc3Ry
dWN0dXJlLCBXVEZNb3ZlKGltcGwpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNDUy
NWU2MzQ0ODQzMGViYjI2NjQ2OTA4MmUyODllNjBlMDhkNjE3Ny4uZmVmZTQ1N2M1NzI2NTMxODdj
NjY0MzlmNDkwMmNhMzE2MDk3NDUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC05
OSw4ICs5OSw2IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOwogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTV29ya2VyR2xv
YmFsU2NvcGVQcm90b3R5cGUsIEpTV29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGU6OkJhc2UpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBkM2IxNGZhNjBjMDQ3N2Y1MGQ3
ZTAzYWUyODI2ZjhlNTYxZGQ1YWRiLi41ZjIzN2YxZDc2YTg4ZDM1YzY5NDZhODczYzY3NGVlYjRk
Yzk5NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTUzLDcgKzUzLDIw
IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2xldEdsb2JhbFNjb3Bl
X1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjCiAKIHVzaW5nIEpTV29ya2xldEdsb2JhbFNjb3Bl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmts
ZXRHbG9iYWxTY29wZT47CiAKLXRlbXBsYXRlPD4gY29uc3QgdW5zaWduZWQgSlNXb3JrbGV0R2xv
YmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKKy8qIEhhc2ggdGFibGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTV29ya2xldEdsb2JhbFNjb3BlVGFibGVJbmRleFsyXSA9IHsKKyAgICB7IDAsIC0x
IH0sCisgICAgeyAtMSwgLTEgfSwKK307CisKKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTV29ya2xldEdsb2JhbFNjb3BlVGFibGVWYWx1ZXNbXSA9Cit7CisgICAgeyAiV29ya2xldEds
b2JhbFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtsZXRHbG9iYWxTY29wZV9Xb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKK307CisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNXb3JrbGV0R2xvYmFsU2NvcGU6
OmluZm8oKSwgSlNXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNXb3JrbGV0R2xvYmFs
U2NvcGVUYWJsZUluZGV4IH07CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1dvcmtsZXRH
bG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXb3JrbGV0R2xvYmFsU2NvcGUi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
V29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1dvcmtsZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBA
IC02OCw3ICs4MSw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1dvcmtsZXRHbG9iYWxTY29wZURPTUNv
bnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotLyogSGFzaCB0YWJsZSBmb3IgUHJvdG90eXBlICovCisvKiBIYXNoIHRhYmxlIGZvciBwcm90
b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTV29ya2xl
dEdsb2JhbFNjb3BlUHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKICAgICB7IC0xLCAtMSB9LApA
QCAtOTEsMjEgKzEwNCw3IEBAIHZvaWQgSlNXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5T
SVRJT04oKTsKIH0KIAotLyogSGFzaCB0YWJsZSBmb3IgSW5zdGFuY2UgKi8KLQotc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTV29ya2xldEdsb2JhbFNjb3BlSW5zdGFuY2VU
YWJsZUluZGV4WzJdID0gewotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQot
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNXb3JrbGV0R2xvYmFsU2NvcGVJbnN0YW5j
ZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgIldvcmtsZXRHbG9iYWxTY29wZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNXb3JrbGV0R2xvYmFsU2NvcGVfV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihudWxscHRy
KSB9IH0sCi19OwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTV29ya2xldEdsb2JhbFNjb3Bl
SW5zdGFuY2VUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmluZm8o
KSwgSlNXb3JrbGV0R2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlVmFsdWVzLCBKU1dvcmtsZXRHbG9i
YWxTY29wZUluc3RhbmNlVGFibGVJbmRleCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTV29ya2xldEds
b2JhbFNjb3BlOjpzX2luZm8gPSB7ICJXb3JrbGV0R2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZv
LCAmSlNXb3JrbGV0R2xvYmFsU2NvcGVJbnN0YW5jZVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTV29ya2xldEdsb2JhbFNjb3BlKSB9OworY29uc3QgQ2xhc3NJbmZvIEpTV29y
a2xldEdsb2JhbFNjb3BlOjpzX2luZm8gPSB7ICJXb3JrbGV0R2xvYmFsU2NvcGUiLCAmQmFzZTo6
c19pbmZvLCAmSlNXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1dvcmtsZXRHbG9iYWxTY29wZSkgfTsKIAogSlNXb3JrbGV0R2xvYmFsU2NvcGU6
OkpTV29ya2xldEdsb2JhbFNjb3BlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxX
b3JrbGV0R2xvYmFsU2NvcGU+JiYgaW1wbCkKICAgICA6IEpTRXZlbnRUYXJnZXQodm0sIHN0cnVj
dHVyZSwgV1RGTW92ZShpbXBsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggZGQ0
MzM3MWJhNzExMTY2M2M4OWU5NDQxN2MyZGI3NmU2ZWIwYjE5ZC4uMWE4YWQ5OGZiNTgyYzczNTJh
ZTQ2YWU4MDNlYzRhMjAxZmMwZGVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmgKQEAg
LTk5LDggKzk5LDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6Vk0mKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNXb3JrbGV0
R2xvYmFsU2NvcGVQcm90b3R5cGUsIEpTV29ya2xldEdsb2JhbFNjb3BlUHJvdG90eXBlOjpCYXNl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwKaW5kZXggMDRjNWJkOTI2YTNmN2RhMmQ5ZDJm
NjZkYjAxNjg5NTUxYWEwNjJjYy4uN2EzMTk5NTIwOWE3ZTkwNWM4ZWIzMTQxZTRjNDA3MjYwMTli
NGFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdEVuYWJsZWRCeVNldHRpbmcuaWRsCkBAIC0yNCw4ICsyNCw2IEBACiAgKi8K
IAogWwotICAgIFByaXZhdGVJZGVudGlmaWVyLAotICAgIFB1YmxpY0lkZW50aWZpZXIsCiAgICAg
RXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFRlc3RFbmFibGVkQnlTZXR0aW5nIHsKICAgICBb
RW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZ10gYXR0cmlidXRlIFRlc3RTdWJPYmpDb25zdHJ1
Y3RvciBUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCA0NTk1ZmJmMzczNzQ1OWFiZjg2
YmMxZDVjYWQzNjdlOTI0N2UzOWNkLi42NTgzZDcyZThkNDA4OTYyMDdjN2Q1OThiOTllZjA1YjNl
MDlmOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCkBAIC0xODAsMTAgKzE4MCw2IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGln
aCIsICJraW5kYS1sb3ciIH07CiAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjQsIEpTQnVpbHRp
bl0gcmVhZG9ubHkgYXR0cmlidXRlIFRlc3RPYmoganNCdWlsdGluUmVhZE9ubHlBdHRyaWJ1dGU7
CiAKICAgICAvLyBQcml2YXRlIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgIFtDb25kaXRpb25hbD1U
RVNUX0ZFQVRVUkUsIEVuYWJsZWRBdFJ1bnRpbWU9VGVzdEZlYXR1cmUsIFByaXZhdGVJZGVudGlm
aWVyXSBhdHRyaWJ1dGUgbG9uZyBlbmFibGVkQXRSdW50aW1lUHJpdmF0ZUF0dHI7Ci0gICAgW0Nv
bmRpdGlvbmFsPVRFU1RfRkVBVFVSRSwgRW5hYmxlZEF0UnVudGltZT1UZXN0RmVhdHVyZSwgUHJp
dmF0ZUlkZW50aWZpZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZW5hYmxlZEF0UnVu
dGltZVByaXZhdGVSZWFkT25seUF0dHI7Ci0gICAgW0NvbmRpdGlvbmFsPVRFU1RfRkVBVFVSRSwg
RW5hYmxlZEF0UnVudGltZT1UZXN0RmVhdHVyZSwgUHJpdmF0ZUlkZW50aWZpZXJdIHN0YXRpYyBy
ZWFkb25seSBhdHRyaWJ1dGUgVGVzdE9iaiBlbmFibGVkQXRSdW50aW1lUHJpdmF0ZVN0YXRpY1Jl
YWRPbmx5QXR0cjsKLSAgICBbQ29uZGl0aW9uYWw9VEVTVF9GRUFUVVJFLCBFbmFibGVkQXRSdW50
aW1lPVRlc3RGZWF0dXJlLCBQcml2YXRlSWRlbnRpZmllcl0gc3RhdGljIGJvb2xlYW4gZW5hYmxl
ZEF0UnVudGltZVByaXZhdGVTdGF0aWNNZXRob2QobG9uZyBsb25nQXJnKTsKICAgICBbUHJpdmF0
ZUlkZW50aWZpZXJdIERPTVN0cmluZyBwcml2YXRlTWV0aG9kKERPTVN0cmluZyBhcmd1bWVudCk7
CiAgICAgW1ByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBET01TdHJpbmcgcHVi
bGljQW5kUHJpdmF0ZU1ldGhvZChET01TdHJpbmcgYXJndW1lbnQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCmluZGV4IGRmODM0NmNlZGI2
NTJlNzIzYWUwOGQ2Nzg3MTNjYmIxMjJmZDRlY2YuLmUzNWMzMWFlY2VmMTdlMmYwYzQ4NzM0MDI3
YmE2ZWI5Yzk3NWNjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
eW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1l
bnRDb29yZGluYXRvci5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX2F2YWlsYWJsZVBheW1lbnROZXR3
b3JrczsKICAgICBNb2NrUGF5bWVudENvbnRhY3RGaWVsZHMgbV9yZXF1aXJlZEJpbGxpbmdDb250
YWN0RmllbGRzOwogICAgIE1vY2tQYXltZW50Q29udGFjdEZpZWxkcyBtX3JlcXVpcmVkU2hpcHBp
bmdDb250YWN0RmllbGRzOwotICAgIGJvb2wgbV9zdXBwb3J0c1VucmVzdHJpY3RlZEFwcGxlUGF5
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3VwcG9ydHNVbnJlc3RyaWN0ZWRBcHBsZVBheSB7IHRy
dWUgfTsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBBcHBsZVBheUlu
c3RhbGxtZW50Q29uZmlndXJhdGlvbiBtX2luc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDYzMmZhMTQ2ZDA2M2VkNjM4MmIxYWIyMDU2MmY1MTg5N2E0YTg5M2QuLjliOTU5
N2YyMDZhZTRhNzdiOGI3NjM1MzA4ZjlhYTliYTA3ZTYzMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBA
QAorMjAyMS0wNy0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzk1NDYsIHIyNzk1NTQsIHIyNzk1NTgg
YW5kIHIyNzk1NjcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc3MzIKKworICAgICAgICBTcGVlZG9tZXRlci9qUXVlcnktVG9kb01WQyAyLTMlIHJl
Z3Jlc3Npb24KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJbV2Vi
SURMXSBSZXdvcmsgcnVudGltZSBlbmFibGVkIHByb3BlcnRpZXMgbGV2ZXJhZ2luZworICAgICAg
ICBQcm9wZXJ0eUNhbGxiYWNrIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3Mjc1CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3Iy
Nzk1NDYKKworICAgICAgICAiW1dlYklETF0gR2VuZXJhdGUgY29uc3RydWN0b3IncyBoYXNoIHRh
YmxlIGluCisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjY4CisgICAgICAg
IGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NTQKKworICAgICAgICAiW1dlYklETF0g
U2ltcGxpZnkgZ2VuZXJhdGlvbiBvZiBydW50aW1lIGNvbmRpdGlvbmFsbHkgcmVhZC0KKyAgICAg
ICAgd3JpdGUgYXR0cmlidXRlcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzY3MgorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9y
Mjc5NTU4CisKKyAgICAgICAgIlVzZSBBYm9ydFNpZ25hbCdzIFtQcml2YXRlSWRlbnRpZmllcl0g
d2hlblNpZ25hbEFib3J0ZWQoKQorICAgICAgICBzdGF0aWMgbWV0aG9kIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjczCisgICAgICAgIGh0dHBz
Oi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NjcKKwogMjAyMS0wNy0wNiAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NyZWRlbnRpYWxzL2F1dGhlbnRpY2F0aW9uLWJh
c2ljLmFueSouaHRtbCBhcmUgY3Jhc2hpbmcgaW4gZGVidWcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IGIzN2EzMjdhZmZhNzljMGZmM2U4NWU5ZTZhZjk3YzFhM2ZjMjVjZmUuLjVk
NjJhNmU1YmYwODMzYmQ3MGI0ZTg2NjdiYjViODMwMDgxODQ3MzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA3LTA2ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI3OTU0NiwgcjI3OTU1NCwgcjI3OTU1OCBhbmQgcjI3OTU2Ny4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzczMgorCisgICAgICAgIFNwZWVk
b21ldGVyL2pRdWVyeS1Ub2RvTVZDIDItMyUgcmVncmVzc2lvbgorCisgICAgICAgIFJldmVydGVk
IGNoYW5nZXNldHM6CisKKyAgICAgICAgIltXZWJJRExdIFJld29yayBydW50aW1lIGVuYWJsZWQg
cHJvcGVydGllcyBsZXZlcmFnaW5nCisgICAgICAgIFByb3BlcnR5Q2FsbGJhY2siCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNzUKKyAgICAgICAg
aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU0NgorCisgICAgICAgICJbV2ViSURMXSBH
ZW5lcmF0ZSBjb25zdHJ1Y3RvcidzIGhhc2ggdGFibGUgaW4KKyAgICAgICAgR2VuZXJhdGVDb25z
dHJ1Y3RvckhlbHBlck1ldGhvZHMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc2NjgKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcv
cjI3OTU1NAorCisgICAgICAgICJbV2ViSURMXSBTaW1wbGlmeSBnZW5lcmF0aW9uIG9mIHJ1bnRp
bWUgY29uZGl0aW9uYWxseSByZWFkLQorICAgICAgICB3cml0ZSBhdHRyaWJ1dGVzIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjcyCisgICAgICAg
IGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NTgKKworICAgICAgICAiVXNlIEFib3J0
U2lnbmFsJ3MgW1ByaXZhdGVJZGVudGlmaWVyXSB3aGVuU2lnbmFsQWJvcnRlZCgpCisgICAgICAg
IHN0YXRpYyBtZXRob2QiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc2NzMKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU2
NworCiAyMDIxLTA3LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbmFibGUgdG8gdXNlICdkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQnIHVybCBmb3Ig
V29ya2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3N0cmVhbXMvcGlwaW5nL2Fib3J0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2Fib3J0LmFu
eS1leHBlY3RlZC50eHQKaW5kZXggMGI1OTc4NDRjMDkzYjJiMWU4YjBiYzY2YWYwNDk3ZjM2YTgz
OTEyMS4uZGU1MzZmODU4ZDY0OGVhNWU1YzcxYzczY2NhNDJiZjA5ZWJmNTI3YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3Bp
cGluZy9hYm9ydC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvYWJvcnQuYW55LWV4cGVjdGVkLnR4
dApAQCAtNSw3ICs1LDcgQEAgUEFTUyBhIHNpZ25hbCBhcmd1bWVudCAnbnVsbCcgc2hvdWxkIGNh
dXNlIHBpcGVUbygpIHRvIHJlamVjdAogUEFTUyBhIHNpZ25hbCBhcmd1bWVudCAnQWJvcnRTaWdu
YWwnIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3QKIFBBU1MgYSBzaWduYWwgYXJndW1l
bnQgJ3RydWUnIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3QKIFBBU1MgYSBzaWduYWwg
YXJndW1lbnQgJy0xJyBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0Ci1GQUlMIGEgc2ln
bmFsIGFyZ3VtZW50ICdbb2JqZWN0IEFib3J0U2lnbmFsXScgc2hvdWxkIGNhdXNlIHBpcGVUbygp
IHRvIHJlamVjdCBBcmd1bWVudCAxICgnb2JqZWN0JykgdG8gQWJvcnRTaWduYWwud2hlblNpZ25h
bEFib3J0ZWQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBBYm9ydFNpZ25hbAorRkFJTCBhIHNpZ25h
bCBhcmd1bWVudCAnW29iamVjdCBBYm9ydFNpZ25hbF0nIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0
byByZWplY3QgcHJvbWlzZV9yZWplY3RzX2pzOiBwaXBlVG8gc2hvdWxkIHJlamVjdCBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3ICJmYWlsZWQgdG8gYWJvcnQiIHdpdGgg
dHlwZSAic3RyaW5nIiwgbm90IGFuIG9iamVjdAogUEFTUyBhbiBhYm9ydGVkIHNpZ25hbCBzaG91
bGQgY2F1c2UgdGhlIHdyaXRhYmxlIHN0cmVhbSB0byByZWplY3Qgd2l0aCBhbiBBYm9ydEVycm9y
CiBQQVNTIGFsbCB0aGUgQWJvcnRFcnJvciBvYmplY3RzIHNob3VsZCBiZSB0aGUgc2FtZSBvYmpl
Y3QKIFBBU1MgcHJldmVudENhbmNlbCBzaG91bGQgcHJldmVudCBjYW5jZWxpbmcgdGhlIHJlYWRh
YmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3N0cmVhbXMvcGlwaW5nL2Fib3J0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9hYm9y
dC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAwYjU5Nzg0NGMwOTNiMmIxZThiMGJjNjZh
ZjA0OTdmMzZhODM5MTIxLi5kZTUzNmY4NThkNjQ4ZWE1ZTVjNzFjNzNjY2E0MmJmMDllYmY1Mjdi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3N0cmVhbXMvcGlwaW5nL2Fib3J0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvYWJv
cnQuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgYSBzaWduYWwg
YXJndW1lbnQgJ251bGwnIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3QKIFBBU1MgYSBz
aWduYWwgYXJndW1lbnQgJ0Fib3J0U2lnbmFsJyBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVq
ZWN0CiBQQVNTIGEgc2lnbmFsIGFyZ3VtZW50ICd0cnVlJyBzaG91bGQgY2F1c2UgcGlwZVRvKCkg
dG8gcmVqZWN0CiBQQVNTIGEgc2lnbmFsIGFyZ3VtZW50ICctMScgc2hvdWxkIGNhdXNlIHBpcGVU
bygpIHRvIHJlamVjdAotRkFJTCBhIHNpZ25hbCBhcmd1bWVudCAnW29iamVjdCBBYm9ydFNpZ25h
bF0nIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3QgQXJndW1lbnQgMSAoJ29iamVjdCcp
IHRvIEFib3J0U2lnbmFsLndoZW5TaWduYWxBYm9ydGVkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
QWJvcnRTaWduYWwKK0ZBSUwgYSBzaWduYWwgYXJndW1lbnQgJ1tvYmplY3QgQWJvcnRTaWduYWxd
JyBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHByb21pc2VfcmVqZWN0c19qczogcGlw
ZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJl
dyAiZmFpbGVkIHRvIGFib3J0IiB3aXRoIHR5cGUgInN0cmluZyIsIG5vdCBhbiBvYmplY3QKIFBB
U1MgYW4gYWJvcnRlZCBzaWduYWwgc2hvdWxkIGNhdXNlIHRoZSB3cml0YWJsZSBzdHJlYW0gdG8g
cmVqZWN0IHdpdGggYW4gQWJvcnRFcnJvcgogUEFTUyBhbGwgdGhlIEFib3J0RXJyb3Igb2JqZWN0
cyBzaG91bGQgYmUgdGhlIHNhbWUgb2JqZWN0CiBQQVNTIHByZXZlbnRDYW5jZWwgc2hvdWxkIHBy
ZXZlbnQgY2FuY2VsaW5nIHRoZSByZWFkYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2gu
YW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS1leHBlY3RlZC50eHQKaW5kZXgg
ZmVmOTNhMTMzNmVmMDRiOTYwMmU5MTUwMWQ1MjBhMDdlY2UyMDkyZC4uZWYzOTliZTJhMWYyMmQ1
ZDkxMDhmNTAwYTM1ZGVmOGFlZTY0NDI1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0CkBAIC0z
Miw3ICszMiw3IEBAIFBBU1MgaW52YWxpZCB2YWx1ZXMgb2Ygc2lnbmFsIHNob3VsZCB0aHJvdzsg
c3BlY2lmaWNhbGx5ICcwJwogUEFTUyBpbnZhbGlkIHZhbHVlcyBvZiBzaWduYWwgc2hvdWxkIHRo
cm93OyBzcGVjaWZpY2FsbHkgJ05hTicKIFBBU1MgaW52YWxpZCB2YWx1ZXMgb2Ygc2lnbmFsIHNo
b3VsZCB0aHJvdzsgc3BlY2lmaWNhbGx5ICd0cnVlJwogUEFTUyBpbnZhbGlkIHZhbHVlcyBvZiBz
aWduYWwgc2hvdWxkIHRocm93OyBzcGVjaWZpY2FsbHkgJ0Fib3J0U2lnbmFsJwotUEFTUyBpbnZh
bGlkIHZhbHVlcyBvZiBzaWduYWwgc2hvdWxkIHRocm93OyBzcGVjaWZpY2FsbHkgJ1tvYmplY3Qg
QWJvcnRTaWduYWxdJworRkFJTCBpbnZhbGlkIHZhbHVlcyBvZiBzaWduYWwgc2hvdWxkIHRocm93
OyBzcGVjaWZpY2FsbHkgJ1tvYmplY3QgQWJvcnRTaWduYWxdJyBhc3NlcnRfdGhyb3dzX2pzOiBw
aXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgZnVuY3Rpb24gIigpID0+IHJzLnBpcGVUaHJvdWdoKHVu
aW50ZXJlc3RpbmdSZWFkYWJsZVdyaXRhYmxlUGFpcigpLCB7IHNpZ25hbCB9KSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBwaXBlVGhyb3VnaCBzaG91bGQgYWNjZXB0IGEgcmVhbCBBYm9ydFNpZ25hbAog
UEFTUyBwaXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgaWYgdGhpcyBpcyBsb2NrZWQKIFBBU1MgcGlw
ZVRocm91Z2ggc2hvdWxkIHRocm93IGlmIHdyaXRhYmxlIGlzIGxvY2tlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGlu
Zy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmZWY5M2ExMzM2ZWYwNGI5NjAyZTkxNTAxZDUy
MGEwN2VjZTIwOTJkLi5lZjM5OWJlMmExZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0MjUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5n
L3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMzIsNyArMzIsNyBAQCBQ
QVNTIGludmFsaWQgdmFsdWVzIG9mIHNpZ25hbCBzaG91bGQgdGhyb3c7IHNwZWNpZmljYWxseSAn
MCcKIFBBU1MgaW52YWxpZCB2YWx1ZXMgb2Ygc2lnbmFsIHNob3VsZCB0aHJvdzsgc3BlY2lmaWNh
bGx5ICdOYU4nCiBQQVNTIGludmFsaWQgdmFsdWVzIG9mIHNpZ25hbCBzaG91bGQgdGhyb3c7IHNw
ZWNpZmljYWxseSAndHJ1ZScKIFBBU1MgaW52YWxpZCB2YWx1ZXMgb2Ygc2lnbmFsIHNob3VsZCB0
aHJvdzsgc3BlY2lmaWNhbGx5ICdBYm9ydFNpZ25hbCcKLVBBU1MgaW52YWxpZCB2YWx1ZXMgb2Yg
c2lnbmFsIHNob3VsZCB0aHJvdzsgc3BlY2lmaWNhbGx5ICdbb2JqZWN0IEFib3J0U2lnbmFsXScK
K0ZBSUwgaW52YWxpZCB2YWx1ZXMgb2Ygc2lnbmFsIHNob3VsZCB0aHJvdzsgc3BlY2lmaWNhbGx5
ICdbb2JqZWN0IEFib3J0U2lnbmFsXScgYXNzZXJ0X3Rocm93c19qczogcGlwZVRocm91Z2ggc2hv
dWxkIHRocm93IGZ1bmN0aW9uICIoKSA9PiBycy5waXBlVGhyb3VnaCh1bmludGVyZXN0aW5nUmVh
ZGFibGVXcml0YWJsZVBhaXIoKSwgeyBzaWduYWwgfSkiIGRpZCBub3QgdGhyb3cKIFBBU1MgcGlw
ZVRocm91Z2ggc2hvdWxkIGFjY2VwdCBhIHJlYWwgQWJvcnRTaWduYWwKIFBBU1MgcGlwZVRocm91
Z2ggc2hvdWxkIHRocm93IGlmIHRoaXMgaXMgbG9ja2VkCiBQQVNTIHBpcGVUaHJvdWdoIHNob3Vs
ZCB0aHJvdyBpZiB3cml0YWJsZSBpcyBsb2NrZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhh
cm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggZTYyMWY3YjgxZThjN2JjNjhjMmRiMzYzNWFhZmUyNGQxOWRjMGY3Mi4u
MzlkNWI0ZjBjNTIxOWVmYzIxNjdkZmI3OGNkODEzNjU5OWZkM2JhNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFy
bmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUwMjIsNyArNTAyMiw3IEBAIFBBU1MgV29ya2xl
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgV29ya2xldCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAotUEFTUyBXb3JrbGV0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorRkFJTCBXb3JrbGV0IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBXb3JrbGV0LnByb3Rv
dHlwZSBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiY29uc3RydWN0b3IiIGV4cGVjdGVkIHBy
b3BlcnR5ICJjb25zdHJ1Y3RvciIgbWlzc2luZwogUEFTUyBXb3JrbGV0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1
bnNjb3BhYmxlcyBwcm9wZXJ0eQogRkFJTCBXb3JrbGV0IGludGVyZmFjZTogb3BlcmF0aW9uIGFk
ZE1vZHVsZShVU1ZTdHJpbmcsIG9wdGlvbmFsIFdvcmtsZXRPcHRpb25zKSBhc3NlcnRfb3duX3By
b3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3Bl
cmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJhZGRNb2R1bGUiIG1pc3NpbmcKIFBBU1MgU3RvcmFn
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNDAyNzk3
MGZiY2ZhZTUzNDNmNGRkNDZhYWJkMDBhNWJhMDZjOWViNC4uYTRlM2E1MDFmMzkzOTdjYzQzNmNm
NjZiZWRhY2EzOGFjYWJlYjRkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtNTAxMiw3ICs1MDEyLDcgQEAgUEFTUyBXb3JrbGV0IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2xl
dCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBXb3JrbGV0IGludGVyZmFjZSBvYmplY3Qg
bmFtZQogUEFTUyBXb3JrbGV0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Ci1QQVNTIFdvcmtsZXQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29u
c3RydWN0b3IiIHByb3BlcnR5CitGQUlMIFdvcmtsZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3Ii
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IFdvcmtsZXQucHJvdG90eXBlIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJjb25zdHJ1Y3RvciIgZXhwZWN0ZWQgcHJvcGVydHkgImNvbnN0
cnVjdG9yIiBtaXNzaW5nCiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5CiBGQUlMIFdvcmtsZXQgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWRkTW9kdWxlKFVTVlN0
cmluZywgb3B0aW9uYWwgV29ya2xldE9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0
ZWQgcHJvcGVydHkgImFkZE1vZHVsZSIgbWlzc2luZwogUEFTUyBTdG9yYWdlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiNjAxNDk4NWVjZDUwYmM1ODFj
ODg5M2Y5YjI3NmVmNWMyNDg2ZjM3Li5iYTFlZGJiMWQwYTIxZTNhMWY1MTQzYzM0OTQ3MGQ5ZjY2
ZDhjZGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC01MDIyLDcgKzUwMjIsNyBAQCBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrbGV0IGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoCiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCiBQQVNTIFdv
cmtsZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QKLVBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJv
cGVydHkKK0ZBSUwgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogV29ya2xldC5wcm90b3R5cGUgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgImNvbnN0cnVjdG9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiY29uc3RydWN0b3IiIG1pc3Np
bmcKIFBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIEZBSUwg
V29ya2xldCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRNb2R1bGUoVVNWU3RyaW5nLCBvcHRpb25h
bCBXb3JrbGV0T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAi
YWRkTW9kdWxlIiBtaXNzaW5nCiBQQVNTIFN0b3JhZ2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9t
L2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDkxNDFlZjc3NjNiYjQzMGE4NjU4MWQ3MmEzYmUxYjk3
Yzk4YjAwNzAuLjY3ZDIyZjE5NjI2YmMzNTk3Mzg1OWE3M2E2NzFiYmU1NzQxOWFkZTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUwMjIsNyArNTAy
Miw3IEBAIFBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgV29ya2xldCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgV29ya2xldCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dAotUEFTUyBXb3JrbGV0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorRkFJTCBX
b3JrbGV0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBXb3JrbGV0LnByb3RvdHlwZSBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiY29uc3Ry
dWN0b3IiIGV4cGVjdGVkIHByb3BlcnR5ICJjb25zdHJ1Y3RvciIgbWlzc2luZwogUEFTUyBXb3Jr
bGV0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogRkFJTCBXb3JrbGV0IGludGVy
ZmFjZTogb3BlcmF0aW9uIGFkZE1vZHVsZShVU1ZTdHJpbmcsIG9wdGlvbmFsIFdvcmtsZXRPcHRp
b25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJhZGRNb2R1bGUiIG1p
c3NpbmcKIFBBU1MgU3RvcmFnZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDMxZjg5OWM2NGU1ZjQ1YWU3MDIxZTkyZjk2NzMyYzJmNzJkMDUyYjcuLjRhOTZlYjI1OTBj
NGJhMmJhM2M1NmYxZmFlOTI0ZDhjMmI1Zjg4MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dwZS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhh
cm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC01MDIyLDcgKzUwMjIsNyBAQCBQQVNTIFdvcmtsZXQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3Jr
bGV0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlIG9iamVj
dCBuYW1lCiBQQVNTIFdvcmtsZXQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKLVBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkKK0ZBSUwgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogV29ya2xldC5wcm90b3R5cGUgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgImNvbnN0cnVjdG9yIiBleHBlY3RlZCBwcm9wZXJ0eSAiY29u
c3RydWN0b3IiIG1pc3NpbmcKIFBBU1MgV29ya2xldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkKIEZBSUwgV29ya2xldCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhZGRNb2R1bGUoVVNW
U3RyaW5nLCBvcHRpb25hbCBXb3JrbGV0T3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBl
Y3RlZCBwcm9wZXJ0eSAiYWRkTW9kdWxlIiBtaXNzaW5nCiBQQVNTIFN0b3JhZ2UgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAzZTA1OGRjNzJj
OWFjOTBjMzE1ZDBhYmVjZmJlOGJjMGE1ODliMDU3Li4wZTAyZWM4ZTA3NWY5NmQ0Y2UxYmIwZTE5
NzM2Y2EyMGY5YTA3MWMwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA3LTA2ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI3OTU0NiwgcjI3OTU1NCwgcjI3OTU1OCBhbmQgcjI3OTU2Ny4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzczMgorCisgICAgICAgIFNwZWVk
b21ldGVyL2pRdWVyeS1Ub2RvTVZDIDItMyUgcmVncmVzc2lvbgorCisgICAgICAgIFJldmVydGVk
IGNoYW5nZXNldHM6CisKKyAgICAgICAgIltXZWJJRExdIFJld29yayBydW50aW1lIGVuYWJsZWQg
cHJvcGVydGllcyBsZXZlcmFnaW5nCisgICAgICAgIFByb3BlcnR5Q2FsbGJhY2siCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyNzUKKyAgICAgICAg
aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU0NgorCisgICAgICAgICJbV2ViSURMXSBH
ZW5lcmF0ZSBjb25zdHJ1Y3RvcidzIGhhc2ggdGFibGUgaW4KKyAgICAgICAgR2VuZXJhdGVDb25z
dHJ1Y3RvckhlbHBlck1ldGhvZHMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc2NjgKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcv
cjI3OTU1NAorCisgICAgICAgICJbV2ViSURMXSBTaW1wbGlmeSBnZW5lcmF0aW9uIG9mIHJ1bnRp
bWUgY29uZGl0aW9uYWxseSByZWFkLQorICAgICAgICB3cml0ZSBhdHRyaWJ1dGVzIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjcyCisgICAgICAg
IGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyNzk1NTgKKworICAgICAgICAiVXNlIEFib3J0
U2lnbmFsJ3MgW1ByaXZhdGVJZGVudGlmaWVyXSB3aGVuU2lnbmFsQWJvcnRlZCgpCisgICAgICAg
IHN0YXRpYyBtZXRob2QiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc2NzMKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI3OTU2
NworCiAyMDIxLTA3LTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJ1biBtaWNyb2JlbmNobWFya3MvbWVtY3B5LXR5cGVkLWxvb3Atc21hbGwuanMgZm9yIGZl
d2VyIGl0ZXJhdGlvbnMgdG8gYXZvaWQgdGltZW91dHMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2xhenktcHJvcGVydHktY3Jvc3MtcmVhbG0uanMgYi9KU1Rlc3RzL3N0cmVzcy9sYXp5LXBy
b3BlcnR5LWNyb3NzLXJlYWxtLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTUz
YWY2MzkzZWIzZDdhMDk4MzhmZjA3ZjQyYzYyMjhjYTg3NjMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2xhenktcHJvcGVydHkt
Y3Jvc3MtcmVhbG0uanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1mdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIHZhbHVlOiAke2FjdHVhbH0uYCk7Ci19Ci0K
LShmdW5jdGlvbiBnZXQoKSB7Ci0gICAgY29uc3Qgb3RoZXIgPSAkdm0uY3JlYXRlR2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0gb3RoZXIuJHZtLmNyZWF0ZVN0YXRpY0xh
enlQcm9wZXJ0eSgpOwotICAgIG90aGVyLmlzRW5hYmxlZExhenlDYWxsYmFja0FjY2Vzc29yID0g
dHJ1ZTsKLSAgICBzaG91bGRCZShsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0FjY2Vzc29y
LCBsYXp5UHJvcGVydHkpOwotfSkoKTsKLQotKGZ1bmN0aW9uIHNldCgpIHsKLSAgICBjb25zdCBv
dGhlciA9ICR2bS5jcmVhdGVHbG9iYWxPYmplY3QoKTsKLSAgICBjb25zdCBsYXp5UHJvcGVydHkg
PSBvdGhlci5ldmFsKCIkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCkiKTsKLQotICAgIG90
aGVyLmlzRW5hYmxlZExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yID0gdHJ1ZTsKLSAgICBjb25z
dCB2YWx1ZSA9IHt9OwotICAgIGxhenlQcm9wZXJ0eS50ZXN0TGF6eUNhbGxiYWNrQ3VzdG9tQWNj
ZXNzb3IgPSB2YWx1ZTsKLSAgICBzaG91bGRCZShsYXp5UHJvcGVydHkudGVzdEZpZWxkLCB2YWx1
ZSk7Ci0KLSAgICBvdGhlci5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB0
cnVlOwotICAgIGxhenlQcm9wZXJ0eS50ZXN0TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0g
MTsKLSAgICBzaG91bGRCZShsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50
ZWdlciwgNDIpOwotfSkoKTsKLQotKGZ1bmN0aW9uIG93bktleXMoKSB7Ci0gICAgY29uc3Qgb3Ro
ZXIgPSAkdm0uY3JlYXRlR2xvYmFsT2JqZWN0KCk7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0g
b3RoZXIuRnVuY3Rpb24oInJldHVybiAkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCkiKSgp
OwotICAgIG90aGVyLmlzRW5hYmxlZExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yID0gdHJ1ZTsK
LSAgICBvdGhlci5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB0cnVlOwot
ICAgIHNob3VsZEJlKFJlZmxlY3Qub3duS2V5cyhsYXp5UHJvcGVydHkpLmpvaW4oKSwgInRlc3RM
YXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3Nvcix0ZXN0TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2Vy
Iik7Ci19KSgpOwotCi0oZnVuY3Rpb24gZGVsZXRlUHJvcGVydHkoKSB7Ci0gICAgY29uc3Qgb3Ro
ZXIgPSAkdm0uY3JlYXRlR2xvYmFsT2JqZWN0KCk7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0g
b3RoZXIuJHZtLmNyZWF0ZVN0YXRpY0xhenlQcm9wZXJ0eSgpOwotICAgIG90aGVyLmlzRW5hYmxl
ZExhenlDYWxsYmFja0FjY2Vzc29yID0gdHJ1ZTsKLSAgICBvdGhlci5pc0VuYWJsZWRMYXp5Q2Fs
bGJhY2tDb25zdGFudEludGVnZXIgPSB0cnVlOwotICAgIHNob3VsZEJlKGRlbGV0ZSBsYXp5UHJv
cGVydHkudGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciwgZmFsc2UpOwotICAgIHNob3Vs
ZEJlKGRlbGV0ZSBsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0FjY2Vzc29yLCB0cnVlKTsK
LSAgICBzaG91bGRCZShSZWZsZWN0Lm93bktleXMobGF6eVByb3BlcnR5KS5qb2luKCksICJ0ZXN0
TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyIik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvbGF6eS1wcm9wZXJ0eS1nZXQtY2FjaGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9sYXp5
LXByb3BlcnR5LWdldC1jYWNoZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZh
ZGQ0ZjRjOWI2ZjIzNjFkMGQ3MjM0YWIyMDE2YjBmNzMyM2YzOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9sYXp5LXByb3BlcnR5
LWdldC1jYWNoZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0MSArMCwwIEBACi1mdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIHZhbHVlOiAke2FjdHVhbH0uYCk7Ci19Ci0K
LShmdW5jdGlvbiBsYXp5Q2FsbGJhY2tBY2Nlc3NvcjEoKSB7Ci0gICAgY29uc3QgbGF6eVByb3Bl
cnR5ID0gJHZtLmNyZWF0ZVN0YXRpY0xhenlQcm9wZXJ0eSgpOwotCi0gICAgY29uc3QgZ2V0ID0g
KCkgPT4gbGF6eVByb3BlcnR5LnRlc3RMYXp5Q2FsbGJhY2tBY2Nlc3NvcjsKLSAgICBub0lubGlu
ZShnZXQpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tBY2Nlc3NvciA9
IGZhbHNlOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgICAgIHNob3Vs
ZEJlKGdldCgpLCB1bmRlZmluZWQpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2Fs
bGJhY2tBY2Nlc3NvciA9IHRydWU7Ci0gICAgc2hvdWxkQmUoZ2V0KCksIGxhenlQcm9wZXJ0eSk7
Ci19KSgpOwotCi0oZnVuY3Rpb24gbGF6eUNhbGxiYWNrQWNjZXNzb3IyKCkgewotICAgIGNvbnN0
IGxhenlQcm9wZXJ0eSA9ICR2bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLSAgICBPYmpl
Y3Quc2V0UHJvdG90eXBlT2YobGF6eVByb3BlcnR5LCB7IHRlc3RMYXp5Q2FsbGJhY2tBY2Nlc3Nv
cjogMjEgfSk7Ci0KLSAgICBjb25zdCBnZXQgPSAoKSA9PiBsYXp5UHJvcGVydHkudGVzdExhenlD
YWxsYmFja0FjY2Vzc29yOwotICAgIG5vSW5saW5lKGdldCk7Ci0KLSAgICBnbG9iYWxUaGlzLmlz
RW5hYmxlZExhenlDYWxsYmFja0FjY2Vzc29yID0gZmFsc2U7Ci0gICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTQ7ICsraSkKLSAgICAgICAgc2hvdWxkQmUoZ2V0KCksIDIxKTsKLQotICAgIGdsb2Jh
bFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IgPSB0cnVlOwotICAgIHNob3VsZEJl
KGdldCgpLCBsYXp5UHJvcGVydHkpOwotfSkoKTsKLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFja0Fj
Y2Vzc29yMygpIHsKLSAgICBjb25zdCBoZWlyID0gT2JqZWN0LmNyZWF0ZSgkdm0uY3JlYXRlU3Rh
dGljTGF6eVByb3BlcnR5KCkpOwotCi0gICAgY29uc3QgZ2V0ID0gKCkgPT4gaGVpci50ZXN0TGF6
eUNhbGxiYWNrQWNjZXNzb3I7Ci0gICAgbm9JbmxpbmUoZ2V0KTsKLQotICAgIGdsb2JhbFRoaXMu
aXNFbmFibGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDFlNDsgKytpKQotICAgICAgICBzaG91bGRCZShnZXQoKSwgdW5kZWZpbmVkKTsKLQot
ICAgIGdsb2JhbFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IgPSB0cnVlOwotICAg
IHNob3VsZEJlKGdldCgpLCBoZWlyKTsKLX0pKCk7Ci0KLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFj
a0N1c3RvbUFjY2Vzc29yMSgpIHsKLSAgICBjb25zdCB0ZXN0RmllbGQgPSB7fTsKLSAgICBjb25z
dCBsYXp5UHJvcGVydHkgPSAkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCk7Ci0gICAgbGF6
eVByb3BlcnR5LnRlc3RGaWVsZCA9IHRlc3RGaWVsZDsKLQotICAgIGNvbnN0IGdldCA9ICgpID0+
IGxhenlQcm9wZXJ0eS50ZXN0TGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3I7Ci0gICAgbm9Jbmxp
bmUoZ2V0KTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQ3VzdG9tQWNj
ZXNzb3IgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgICAg
ICBzaG91bGRCZShnZXQoKSwgdW5kZWZpbmVkKTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFibGVk
TGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IgPSB0cnVlOwotICAgIHNob3VsZEJlKGdldCgpLCB0
ZXN0RmllbGQpOwotfSkoKTsKLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29y
MigpIHsKLSAgICBjb25zdCB0ZXN0RmllbGQgPSB7fTsKLSAgICBjb25zdCBsYXp5UHJvcGVydHkg
PSAkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCk7Ci0gICAgbGF6eVByb3BlcnR5LnRlc3RG
aWVsZCA9IHRlc3RGaWVsZDsKLSAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YobGF6eVByb3BlcnR5
LCB7IHRlc3RMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvcjogMjEgfSk7Ci0KLSAgICBjb25zdCBn
ZXQgPSAoKSA9PiBsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yOwot
ICAgIG5vSW5saW5lKGdldCk7Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxsYmFj
a0N1c3RvbUFjY2Vzc29yID0gZmFsc2U7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkKLSAgICAgICAgc2hvdWxkQmUoZ2V0KCksIDIxKTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFi
bGVkTGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IgPSB0cnVlOwotICAgIHNob3VsZEJlKGdldCgp
LCB0ZXN0RmllbGQpOwotfSkoKTsKLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFja0N1c3RvbUFjY2Vz
c29yMygpIHsKLSAgICBjb25zdCB0ZXN0RmllbGQgPSB7fTsKLSAgICBjb25zdCBoZWlyID0gT2Jq
ZWN0LmNyZWF0ZSgkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCkpOwotICAgIGhlaXIudGVz
dEZpZWxkID0gdGVzdEZpZWxkOwotCi0gICAgY29uc3QgZ2V0ID0gKCkgPT4gaGVpci50ZXN0TGF6
eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3I7Ci0gICAgbm9JbmxpbmUoZ2V0KTsKLQotICAgIGdsb2Jh
bFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IgPSBmYWxzZTsKLSAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKQotICAgICAgICBzaG91bGRCZShnZXQoKSwgdW5k
ZWZpbmVkKTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQ3VzdG9tQWNj
ZXNzb3IgPSB0cnVlOwotICAgIHNob3VsZEJlKGdldCgpLCB0ZXN0RmllbGQpOwotfSkoKTsKLQot
Ci0oZnVuY3Rpb24gbGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyMSgpIHsKLSAgICBjb25zdCBs
YXp5UHJvcGVydHkgPSAkdm0uY3JlYXRlU3RhdGljTGF6eVByb3BlcnR5KCk7Ci0KLSAgICBjb25z
dCBnZXQgPSAoKSA9PiBsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdl
cjsKLSAgICBub0lubGluZShnZXQpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2Fs
bGJhY2tDb25zdGFudEludGVnZXIgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
NDsgKytpKQotICAgICAgICBzaG91bGRCZShnZXQoKSwgdW5kZWZpbmVkKTsKLQotICAgIGdsb2Jh
bFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0gdHJ1ZTsKLSAgICBz
aG91bGRCZShnZXQoKSwgNDIpOwotfSkoKTsKLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFja0NvbnN0
YW50SW50ZWdlcjIoKSB7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0gJHZtLmNyZWF0ZVN0YXRp
Y0xhenlQcm9wZXJ0eSgpOwotICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihsYXp5UHJvcGVydHks
IHsgdGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlcjogMjEgfSk7Ci0KLSAgICBjb25zdCBn
ZXQgPSAoKSA9PiBsYXp5UHJvcGVydHkudGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlcjsK
LSAgICBub0lubGluZShnZXQpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJh
Y2tDb25zdGFudEludGVnZXIgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsg
KytpKQotICAgICAgICBzaG91bGRCZShnZXQoKSwgMjEpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0Vu
YWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB0cnVlOwotICAgIHNob3VsZEJlKGdl
dCgpLCA0Mik7Ci19KSgpOwotCi0oZnVuY3Rpb24gbGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2Vy
MygpIHsKLSAgICBjb25zdCBoZWlyID0gT2JqZWN0LmNyZWF0ZSgkdm0uY3JlYXRlU3RhdGljTGF6
eVByb3BlcnR5KCkpOwotCi0gICAgY29uc3QgZ2V0ID0gKCkgPT4gaGVpci50ZXN0TGF6eUNhbGxi
YWNrQ29uc3RhbnRJbnRlZ2VyOwotICAgIG5vSW5saW5lKGdldCk7Ci0KLSAgICBnbG9iYWxUaGlz
LmlzRW5hYmxlZExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciA9IGZhbHNlOwotICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpCi0gICAgICAgIHNob3VsZEJlKGdldCgpLCB1bmRlZmlu
ZWQpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVn
ZXIgPSB0cnVlOwotICAgIHNob3VsZEJlKGdldCgpLCA0Mik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvbGF6eS1wcm9wZXJ0eS1nb3BkLmpzIGIvSlNUZXN0cy9zdHJlc3MvbGF6
eS1wcm9wZXJ0eS1nb3BkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmVkOGVi
NTg2N2MwNzAxMDAxNzAzY2JmMDQ5NzFjMGIzZjc4Zjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2xhenktcHJvcGVydHktZ29w
ZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAg
dGhyb3cgbmV3IEVycm9yKGBCYWQgdmFsdWU6ICR7YWN0dWFsfS5gKTsKLX0KLQotKGZ1bmN0aW9u
IGxhenlDYWxsYmFja0FjY2Vzc29yKCkgewotICAgIGNvbnN0IGxhenlQcm9wZXJ0eSA9ICR2bS5j
cmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLSAgICBjb25zdCBrZXkgPSAidGVzdExhenlDYWxs
YmFja0FjY2Vzc29yIjsKLQotICAgIHNob3VsZEJlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobGF6eVByb3BlcnR5LCBrZXkpLCB1bmRlZmluZWQpOwotICAgIGdsb2JhbFRoaXMuaXNF
bmFibGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IgPSB0cnVlOwotCi0gICAgY29uc3QgZGVzYyA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobGF6eVByb3BlcnR5LCBrZXkpOwotICAgIHNo
b3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgImZ1bmN0aW9uIik7Ci0gICAgc2hvdWxkQmUoZGVzYy5z
ZXQsIHVuZGVmaW5lZCk7Ci0gICAgc2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKLSAg
ICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7Ci19KSgpOwotCi0oZnVuY3Rpb24g
bGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IoKSB7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0g
JHZtLmNyZWF0ZVN0YXRpY0xhenlQcm9wZXJ0eSgpOwotICAgIGNvbnN0IGtleSA9ICJ0ZXN0TGF6
eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IiOwotCi0gICAgc2hvdWxkQmUoT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihsYXp5UHJvcGVydHksIGtleSksIHVuZGVmaW5lZCk7Ci0gICAgZ2xv
YmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvciA9IHRydWU7Ci0KLSAg
ICBjb25zdCBkZXNjMSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobGF6eVByb3Bl
cnR5LCBrZXkpOwotICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjMS5nZXQsICJmdW5jdGlvbiIpOwot
ICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjMS5zZXQsICJmdW5jdGlvbiIpOwotICAgIHNob3VsZEJl
KGRlc2MxLmVudW1lcmFibGUsIHRydWUpOwotICAgIHNob3VsZEJlKGRlc2MxLmNvbmZpZ3VyYWJs
ZSwgdHJ1ZSk7Ci0KLSAgICBjb25zdCBkZXNjMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobGF6eVByb3BlcnR5LCBrZXkpOwotICAgIHNob3VsZEJlKGRlc2MyLmdldCwgZGVzYzEu
Z2V0KTsKLSAgICBzaG91bGRCZShkZXNjMi5zZXQsIGRlc2MxLnNldCk7Ci19KSgpOwotCi0oZnVu
Y3Rpb24gbGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyKCkgewotICAgIGNvbnN0IGxhenlQcm9w
ZXJ0eSA9ICR2bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLSAgICBjb25zdCBrZXkgPSAi
dGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciI7Ci0KLSAgICBzaG91bGRCZShPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGxhenlQcm9wZXJ0eSwga2V5KSwgdW5kZWZpbmVkKTsK
LSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciA9IHRy
dWU7Ci0KLSAgICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihs
YXp5UHJvcGVydHksIGtleSk7Ci0gICAgc2hvdWxkQmUoZGVzYy52YWx1ZSwgNDIpOwotICAgIHNo
b3VsZEJlKGRlc2Mud3JpdGFibGUsIGZhbHNlKTsKLSAgICBzaG91bGRCZShkZXNjLmVudW1lcmFi
bGUsIHRydWUpOwotICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCBmYWxzZSk7Ci19KSgp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbGF6eS1wcm9wZXJ0eS1oYXNvd25wcm9wZXJ0
eS1jYWNoZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2xhenktcHJvcGVydHktaGFzb3ducHJvcGVydHkt
Y2FjaGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlMmZiOTg0MDM3YzYyYmM0
OTdiMGViNWY0MzA5YmM0ZmU1ODQ0NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvbGF6eS1wcm9wZXJ0eS1oYXNvd25wcm9wZXJ0
eS1jYWNoZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLWZ1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgdmFsdWU6ICR7YWN0dWFsfS5gKTsKLX0KLQotKGZ1
bmN0aW9uIGxhenlDYWxsYmFja0FjY2Vzc29yKCkgewotICAgIGNvbnN0IGxhenlQcm9wZXJ0eSA9
ICR2bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLSAgICBPYmplY3Quc2V0UHJvdG90eXBl
T2YobGF6eVByb3BlcnR5LCBPYmplY3QucHJvdG90eXBlKTsKLQotICAgIGdsb2JhbFRoaXMuaXNF
bmFibGVkTGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0gZmFsc2U7Ci0gICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxZTQ7ICsraSkKLSAgICAgICAgc2hvdWxkQmUobGF6eVByb3BlcnR5Lmhhc093
blByb3BlcnR5KCJ0ZXN0TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyIiksIGZhbHNlKTsKLQot
ICAgIGdsb2JhbFRoaXMuaXNFbmFibGVkTGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0gdHJ1
ZTsKLSAgICBzaG91bGRCZShsYXp5UHJvcGVydHkuaGFzT3duUHJvcGVydHkoInRlc3RMYXp5Q2Fs
bGJhY2tDb25zdGFudEludGVnZXIiKSwgdHJ1ZSk7Ci19KSgpOwotCi0oZnVuY3Rpb24gbGF6eUNh
bGxiYWNrQ3VzdG9tQWNjZXNzb3IoKSB7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0gJHZtLmNy
ZWF0ZVN0YXRpY0xhenlQcm9wZXJ0eSgpOwotICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihsYXp5
UHJvcGVydHksIE9iamVjdC5wcm90b3R5cGUpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRM
YXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNDsgKytpKQotICAgICAgICBzaG91bGRCZShsYXp5UHJvcGVydHkuaGFzT3duUHJvcGVy
dHkoInRlc3RMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIiKSwgZmFsc2UpOwotCi0gICAgZ2xv
YmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB0cnVlOwotICAg
IHNob3VsZEJlKGxhenlQcm9wZXJ0eS5oYXNPd25Qcm9wZXJ0eSgidGVzdExhenlDYWxsYmFja0Nv
bnN0YW50SW50ZWdlciIpLCB0cnVlKTsKLX0pKCk7Ci0KLShmdW5jdGlvbiBsYXp5Q2FsbGJhY2tD
b25zdGFudEludGVnZXIoKSB7Ci0gICAgY29uc3QgbGF6eVByb3BlcnR5ID0gJHZtLmNyZWF0ZVN0
YXRpY0xhenlQcm9wZXJ0eSgpOwotICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihsYXp5UHJvcGVy
dHksIE9iamVjdC5wcm90b3R5cGUpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2Fs
bGJhY2tDb25zdGFudEludGVnZXIgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
NDsgKytpKQotICAgICAgICBzaG91bGRCZShsYXp5UHJvcGVydHkuaGFzT3duUHJvcGVydHkoInRl
c3RMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIiKSwgZmFsc2UpOwotCi0gICAgZ2xvYmFsVGhp
cy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB0cnVlOwotICAgIHNob3Vs
ZEJlKGxhenlQcm9wZXJ0eS5oYXNPd25Qcm9wZXJ0eSgidGVzdExhenlDYWxsYmFja0NvbnN0YW50
SW50ZWdlciIpLCB0cnVlKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sYXp5
LXByb3BlcnR5LXB1dC1jYWNoZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2xhenktcHJvcGVydHktcHV0
LWNhY2hlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGVhZDllYzk5OWI3ZmI2
ZDBlOTdkZTI5MWI5NDdmNzgwNDRlNzQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2xhenktcHJvcGVydHktcHV0LWNhY2hlLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTU4ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVh
bCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBCYWQgdmFsdWU6ICR7YWN0dWFsfS5gKTsKLX0KLQotZnVuY3Rpb24gc2hv
dWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7Ci0gICAgbGV0IGVycm9yVGhyb3duID0gZmFs
c2U7Ci0gICAgdHJ5IHsKLSAgICAgICAgZnVuYygpOwotICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0g
ICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKLSAgICAgICAgaWYgKGVycm9yLnRvU3RyaW5nKCkg
IT09IGVycm9yTWVzc2FnZSkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIGVycm9y
OiAke2Vycm9yfWApOwotICAgIH0KLSAgICBpZiAoIWVycm9yVGhyb3duKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkRpZG4ndCB0aHJvdyEiKTsKLX0KLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFj
a0FjY2Vzc29yMSgpIHsKLSAgICBjb25zdCBsYXp5UHJvcGVydHkgPSAkdm0uY3JlYXRlU3RhdGlj
TGF6eVByb3BlcnR5KCk7Ci0KLSAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YobGF6eVByb3BlcnR5
LCBPYmplY3QuY3JlYXRlKG51bGwsIHsKLSAgICAgICAgdGVzdExhenlDYWxsYmFja0FjY2Vzc29y
OiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCR2bS5jcmVhdGVDdXN0b21UZXN0R2V0
dGVyU2V0dGVyKCksICJjdXN0b21BY2Nlc3NvciIpLAotICAgIH0pKTsKLQotICAgIGZ1bmN0aW9u
IHB1dFN0cmljdCh2YWwpIHsgInVzZSBzdHJpY3QiOyBsYXp5UHJvcGVydHkudGVzdExhenlDYWxs
YmFja0FjY2Vzc29yID0gdmFsOyB9OwotICAgIG5vSW5saW5lKHB1dFN0cmljdCk7Ci0KLSAgICBn
bG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxsYmFja0FjY2Vzc29yID0gZmFsc2U7Ci0gICAgZm9y
IChsZXQgaSA9IDE7IGkgPD0gMWU0OyArK2kpIHsKLSAgICAgICAgY29uc3QgdmFsdWUgPSB7fTsK
LSAgICAgICAgcHV0U3RyaWN0KHZhbHVlKTsKLSAgICAgICAgc2hvdWxkQmUodmFsdWUucmVzdWx0
LCBsYXp5UHJvcGVydHkpOwotICAgIH0KLQotICAgIGdsb2JhbFRoaXMuaXNFbmFibGVkTGF6eUNh
bGxiYWNrQWNjZXNzb3IgPSB0cnVlOwotICAgIGNvbnN0IHZhbHVlID0ge307Ci0gICAgc2hvdWxk
VGhyb3coKCkgPT4geyBwdXRTdHJpY3Qoe30pOyB9LCAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8g
YXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LiIpOwotICAgIHNob3VsZEJlKHZhbHVlLmhhc093
blByb3BlcnR5KCJ2YWx1ZSIpLCBmYWxzZSk7Ci19KSgpOwotCi0oZnVuY3Rpb24gbGF6eUNhbGxi
YWNrQWNjZXNzb3IyKCkgewotICAgIGNvbnN0IGxhenlQcm9wZXJ0eSA9ICR2bS5jcmVhdGVTdGF0
aWNMYXp5UHJvcGVydHkoKTsKLSAgICBjb25zdCBoZWlyID0gT2JqZWN0LmNyZWF0ZShsYXp5UHJv
cGVydHkpOwotCi0gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGxhenlQcm9wZXJ0eSwgT2JqZWN0
LmNyZWF0ZShudWxsLCB7Ci0gICAgICAgIHRlc3RMYXp5Q2FsbGJhY2tBY2Nlc3NvcjogT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigkdm0uY3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3Io
KSwgInRlc3RTdGF0aWNBY2Nlc3NvciIpLAotICAgIH0pKTsKLQotICAgIGZ1bmN0aW9uIHB1dFRv
SGVpclNsb3BweSh2YWwpIHsgaGVpci50ZXN0TGF6eUNhbGxiYWNrQWNjZXNzb3IgPSB2YWw7IH07
Ci0gICAgbm9JbmxpbmUocHV0VG9IZWlyU2xvcHB5KTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFi
bGVkTGF6eUNhbGxiYWNrQWNjZXNzb3IgPSBmYWxzZTsKLSAgICBmb3IgKGxldCBpID0gMTsgaSA8
PSAxZTQ7ICsraSkgewotICAgICAgICBwdXRUb0hlaXJTbG9wcHkoaSk7Ci0gICAgICAgIHNob3Vs
ZEJlKGhlaXIudGVzdEZpZWxkLCBpKTsKLSAgICB9Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxl
ZExhenlDYWxsYmFja0FjY2Vzc29yID0gdHJ1ZTsKLSAgICBwdXRUb0hlaXJTbG9wcHkoNDIpOwot
ICAgIHNob3VsZEJlKGhlaXIudGVzdEZpZWxkLCAxZTQpOwotfSkoKTsKLQotCi0oZnVuY3Rpb24g
bGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNzb3IxKCkgewotICAgIGNvbnN0IGxhenlQcm9wZXJ0eSA9
ICR2bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLQotICAgIGxldCBsYXN0U2V0VmFsdWU7
Ci0gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGxhenlQcm9wZXJ0eSwgewotICAgICAgICBzZXQg
dGVzdExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29yKHZhbCkgeyBsYXN0U2V0VmFsdWUgPSB2YWw7
IH0sCi0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBwdXRTdHJpY3QodmFsKSB7ICJ1c2Ugc3RyaWN0
IjsgbGF6eVByb3BlcnR5LnRlc3RMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvciA9IHZhbDsgfTsK
LSAgICBub0lubGluZShwdXRTdHJpY3QpOwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5
Q2FsbGJhY2tDdXN0b21BY2Nlc3NvciA9IGZhbHNlOwotICAgIGZvciAobGV0IGkgPSAxOyBpIDw9
IDFlNDsgKytpKSB7Ci0gICAgICAgIHB1dFN0cmljdChpKTsKLSAgICAgICAgc2hvdWxkQmUobGFz
dFNldFZhbHVlLCBpKTsKLSAgICB9Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxs
YmFja0N1c3RvbUFjY2Vzc29yID0gdHJ1ZTsKLSAgICBzaG91bGRCZShsYXp5UHJvcGVydHkudGVz
dEZpZWxkLCB1bmRlZmluZWQpOwotICAgIHB1dFN0cmljdCg0Mik7Ci0gICAgc2hvdWxkQmUobGF6
eVByb3BlcnR5LnRlc3RGaWVsZCwgNDIpOwotfSkoKTsKLQotKGZ1bmN0aW9uIGxhenlDYWxsYmFj
a0N1c3RvbUFjY2Vzc29yMigpIHsKLSAgICBjb25zdCBsYXp5UHJvcGVydHkgPSAkdm0uY3JlYXRl
U3RhdGljTGF6eVByb3BlcnR5KCk7Ci0gICAgY29uc3QgaGVpciA9IE9iamVjdC5jcmVhdGUobGF6
eVByb3BlcnR5KTsKLQotICAgIGxldCBsYXN0U2V0VmFsdWU7Ci0gICAgT2JqZWN0LnNldFByb3Rv
dHlwZU9mKGxhenlQcm9wZXJ0eSwgewotICAgICAgICBnZXQgdGVzdExhenlDYWxsYmFja0N1c3Rv
bUFjY2Vzc29yKCkge30sCi0gICAgICAgIHNldCB0ZXN0TGF6eUNhbGxiYWNrQ3VzdG9tQWNjZXNz
b3IodmFsKSB7IGxhc3RTZXRWYWx1ZSA9IHZhbDsgfSwKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9u
IHB1dFRvSGVpclNsb3BweSh2YWwpIHsgInVzZSBzdHJpY3QiOyBoZWlyLnRlc3RMYXp5Q2FsbGJh
Y2tDdXN0b21BY2Nlc3NvciA9IHZhbDsgfTsKLSAgICBub0lubGluZShwdXRUb0hlaXJTbG9wcHkp
OwotCi0gICAgZ2xvYmFsVGhpcy5pc0VuYWJsZWRMYXp5Q2FsbGJhY2tDdXN0b21BY2Nlc3NvciA9
IGZhbHNlOwotICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDFlNDsgKytpKSB7Ci0gICAgICAgIHB1
dFRvSGVpclNsb3BweShpKTsKLSAgICAgICAgc2hvdWxkQmUobGFzdFNldFZhbHVlLCBpKTsKLSAg
ICB9Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxsYmFja0N1c3RvbUFjY2Vzc29y
ID0gdHJ1ZTsKLSAgICBzaG91bGRCZShoZWlyLnRlc3RGaWVsZCwgdW5kZWZpbmVkKTsKLSAgICBw
dXRUb0hlaXJTbG9wcHkoNDIpOwotICAgIHNob3VsZEJlKGhlaXIudGVzdEZpZWxkLCA0Mik7Ci19
KSgpOwotCi0KLShmdW5jdGlvbiBsYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIxKCkgewotICAg
IGNvbnN0IGxhenlQcm9wZXJ0eSA9ICR2bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLQot
ICAgIGxldCBsYXN0U2V0VmFsdWUgPSAwOwotICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihsYXp5
UHJvcGVydHksIHsKLSAgICAgICAgZ2V0IHRlc3RMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIo
KSB7fSwKLSAgICAgICAgc2V0IHRlc3RMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIodmFsKSB7
IGxhc3RTZXRWYWx1ZSA9IHZhbDsgfSwKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIHB1dFNsb3Bw
eSh2YWwpIHsgbGF6eVByb3BlcnR5LnRlc3RMYXp5Q2FsbGJhY2tDb25zdGFudEludGVnZXIgPSB2
YWw7IH07Ci0gICAgbm9JbmxpbmUocHV0U2xvcHB5KTsKLQotICAgIGdsb2JhbFRoaXMuaXNFbmFi
bGVkTGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0gZmFsc2U7Ci0gICAgZm9yIChsZXQgaSA9
IDE7IGkgPD0gMWU0OyArK2kpIHsKLSAgICAgICAgcHV0U2xvcHB5KGkpOwotICAgICAgICBzaG91
bGRCZShsYXN0U2V0VmFsdWUsIGkpOwotICAgIH0KLQotICAgIGdsb2JhbFRoaXMuaXNFbmFibGVk
TGF6eUNhbGxiYWNrQ29uc3RhbnRJbnRlZ2VyID0gdHJ1ZTsKLSAgICBwdXRTbG9wcHkoNDIpOwot
ICAgIHNob3VsZEJlKGxhc3RTZXRWYWx1ZSwgMWU0KTsKLX0pKCk7Ci0KLShmdW5jdGlvbiBsYXp5
Q2FsbGJhY2tDb25zdGFudEludGVnZXIyKCkgewotICAgIGNvbnN0IGxhenlQcm9wZXJ0eSA9ICR2
bS5jcmVhdGVTdGF0aWNMYXp5UHJvcGVydHkoKTsKLSAgICBjb25zdCBoZWlyID0gT2JqZWN0LmNy
ZWF0ZShsYXp5UHJvcGVydHkpOwotCi0gICAgbGV0IGxhc3RTZXRWYWx1ZSA9IDA7Ci0gICAgT2Jq
ZWN0LnNldFByb3RvdHlwZU9mKGxhenlQcm9wZXJ0eSwgewotICAgICAgICBzZXQgdGVzdExhenlD
YWxsYmFja0NvbnN0YW50SW50ZWdlcih2YWwpIHsgbGFzdFNldFZhbHVlID0gdmFsOyB9LAotICAg
IH0pOwotCi0gICAgZnVuY3Rpb24gcHV0VG9IZWlyU3RyaWN0KHZhbCkgeyAidXNlIHN0cmljdCI7
IGhlaXIudGVzdExhenlDYWxsYmFja0NvbnN0YW50SW50ZWdlciA9IHZhbDsgfQotICAgIG5vSW5s
aW5lKHB1dFRvSGVpclN0cmljdCk7Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlDYWxs
YmFja0NvbnN0YW50SW50ZWdlciA9IGZhbHNlOwotICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDFl
NDsgKytpKSB7Ci0gICAgICAgIHB1dFRvSGVpclN0cmljdChpKTsKLSAgICAgICAgc2hvdWxkQmUo
bGFzdFNldFZhbHVlLCBpKTsKLSAgICB9Ci0KLSAgICBnbG9iYWxUaGlzLmlzRW5hYmxlZExhenlD
YWxsYmFja0NvbnN0YW50SW50ZWdlciA9IHRydWU7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4geyBw
dXRUb0hlaXJTdHJpY3QoNDIpOyB9LCAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRv
IHJlYWRvbmx5IHByb3BlcnR5LiIpOwotICAgIHNob3VsZEJlKGxhc3RTZXRWYWx1ZSwgMWU0KTsK
LX0pKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>